Fix segmentation logic
diff --git a/src/main/java/com/intel/jndn/utils/server/SegmentedServerHelper.java b/src/main/java/com/intel/jndn/utils/server/SegmentedServerHelper.java
index 2169192..fe518a1 100644
--- a/src/main/java/com/intel/jndn/utils/server/SegmentedServerHelper.java
+++ b/src/main/java/com/intel/jndn/utils/server/SegmentedServerHelper.java
@@ -58,15 +58,16 @@
     List<Data> segments = new ArrayList<>();
     byte[] buffer_ = readAll(bytes);
     ByteBuffer buffer = ByteBuffer.wrap(buffer_, 0, buffer_.length);
-    int end = (int) Math.floor(buffer_.length / segmentSize);
+    int end = Math.max((int) Math.floor(buffer_.length / segmentSize), 1);
     Name.Component lastSegment = Name.Component.fromNumberWithMarker(end, 0x00);
-    for (int i = 0; i <= end; i++) {
+    for (int i = 0; i < end; i++) {
       Data segment = new Data(template);
       segment.getName().appendSegment(i);
       segment.getMetaInfo().setFinalBlockId(lastSegment);
       byte[] content = new byte[segmentSize];
-      buffer.get(content, i * segmentSize, segmentSize);
+      buffer.get(content);
       segment.setContent(new Blob(content));
+      segments.add(segment);
     }
     return segments;
   }