Skip to content

Commit 587c3f9

Browse files
committed
fix the curosr parsing logic
1 parent d1fe086 commit 587c3f9

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

source/s3_util.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ int aws_s3_parse_content_range_cursor(
436436

437437
/* Parse range start */
438438
struct aws_byte_cursor range_start_cursor;
439+
AWS_ZERO_STRUCT(range_start_cursor);
439440
if (!aws_byte_cursor_next_split(&content_range_cursor, '-', &range_start_cursor)) {
440441
return aws_raise_error(AWS_ERROR_S3_INVALID_CONTENT_RANGE_HEADER);
441442
}
@@ -444,9 +445,11 @@ int aws_s3_parse_content_range_cursor(
444445
if (aws_byte_cursor_utf8_parse_u64(range_start_cursor, &range_start)) {
445446
return aws_raise_error(AWS_ERROR_S3_INVALID_CONTENT_RANGE_HEADER);
446447
}
447-
448+
/* Move the cursor to pass the `-` */
449+
aws_byte_cursor_advance(&content_range_cursor, range_start_cursor.len + 1);
448450
/* Parse range end */
449451
struct aws_byte_cursor range_end_cursor;
452+
AWS_ZERO_STRUCT(range_end_cursor);
450453
if (!aws_byte_cursor_next_split(&content_range_cursor, '/', &range_end_cursor)) {
451454
return aws_raise_error(AWS_ERROR_S3_INVALID_CONTENT_RANGE_HEADER);
452455
}
@@ -456,6 +459,8 @@ int aws_s3_parse_content_range_cursor(
456459
return aws_raise_error(AWS_ERROR_S3_INVALID_CONTENT_RANGE_HEADER);
457460
}
458461

462+
/* Move the cursor to pass the `/` */
463+
aws_byte_cursor_advance(&content_range_cursor, range_end_cursor.len + 1);
459464
/* Parse object size (remaining part) */
460465
uint64_t object_size = 0;
461466
if (aws_byte_cursor_utf8_parse_u64(content_range_cursor, &object_size)) {

0 commit comments

Comments
 (0)