@@ -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