@@ -985,22 +985,24 @@ static rd_kafka_resp_err_t rd_kafka_share_fetch_reply_handle_partition(
985985 rktp -> rktp_share_acknowledge_count , AcquiredRecordsArrayCnt );
986986 rd_dassert (rktp -> rktp_share_acknowledge_count == 0 );
987987 rd_dassert (rktp -> rktp_share_acknowledge == NULL );
988- rktp -> rktp_share_acknowledge_count = AcquiredRecordsArrayCnt ;
989- rktp -> rktp_share_acknowledge = rd_calloc (AcquiredRecordsArrayCnt ,
990- sizeof (* rktp -> rktp_share_acknowledge ));
991- for (i = 0 ; i < AcquiredRecordsArrayCnt ; i ++ ) {
992- rd_kafka_buf_read_i64 (rkbuf , & FirstOffset ); // FirstOffset
993- rd_kafka_buf_read_i64 (rkbuf , & LastOffset ); // LastOffset
994- rd_kafka_buf_read_i16 (rkbuf , & DeliveryCount ); // DeliveryCount
995- rd_kafka_buf_skip_tags (rkbuf ); // AcquiredRecords tags
996- rd_rkb_dbg (rkb , FETCH , "SHAREFETCH" ,
997- "%.*s [%" PRId32 "]: Acquired Records from offset %" PRId64
998- " to %" PRId64 ", DeliveryCount %" PRId16 ,
999- RD_KAFKAP_STR_PR (topic ), PartitionId ,
1000- FirstOffset , LastOffset , DeliveryCount );
1001- rktp -> rktp_share_acknowledge [i ].first_offset = FirstOffset ;
1002- rktp -> rktp_share_acknowledge [i ].last_offset = LastOffset ;
1003- rktp -> rktp_share_acknowledge [i ].delivery_count = DeliveryCount ;
988+ if (AcquiredRecordsArrayCnt > 0 ) {
989+ rktp -> rktp_share_acknowledge_count = AcquiredRecordsArrayCnt ;
990+ rktp -> rktp_share_acknowledge = rd_calloc (AcquiredRecordsArrayCnt ,
991+ sizeof (* rktp -> rktp_share_acknowledge ));
992+ for (i = 0 ; i < AcquiredRecordsArrayCnt ; i ++ ) {
993+ rd_kafka_buf_read_i64 (rkbuf , & FirstOffset ); // FirstOffset
994+ rd_kafka_buf_read_i64 (rkbuf , & LastOffset ); // LastOffset
995+ rd_kafka_buf_read_i16 (rkbuf , & DeliveryCount ); // DeliveryCount
996+ rd_kafka_buf_skip_tags (rkbuf ); // AcquiredRecords tags
997+ rd_rkb_dbg (rkb , FETCH , "SHAREFETCH" ,
998+ "%.*s [%" PRId32 "]: Acquired Records from offset %" PRId64
999+ " to %" PRId64 ", DeliveryCount %" PRId16 ,
1000+ RD_KAFKAP_STR_PR (topic ), PartitionId ,
1001+ FirstOffset , LastOffset , DeliveryCount );
1002+ rktp -> rktp_share_acknowledge [i ].first_offset = FirstOffset ;
1003+ rktp -> rktp_share_acknowledge [i ].last_offset = LastOffset ;
1004+ rktp -> rktp_share_acknowledge [i ].delivery_count = DeliveryCount ;
1005+ }
10041006 }
10051007
10061008 rd_kafka_buf_skip_tags (rkbuf ); // Partition tags
0 commit comments