ref: 3748adf870b95a0a8f4dc342fe12db5479c92da9
parent: 7281c0b9086c10f1397aff9eb4b4d70e1c283369
parent: 6044fcec3e267b1f0e4658592fc39bc0093c1d32
author: James Zern <jzern@google.com>
date: Tue Mar 4 17:15:59 EST 2014
Merge changes Ibc5352e6,I28d0ec5c,I5c4fc3bb,Ie574a3a7 * changes: nestegg: ne_buffer_read: quiet uint64->size_t warning nestegg: quiet read related uint64->size_t warnings nestegg: ne_parse: normalize size_t usage nestegg: ne_read_(string|binary|block): normalize size_t usage
--- a/third_party/nestegg/README.webm
+++ b/third_party/nestegg/README.webm
@@ -18,3 +18,7 @@
- fix track_number uint64->uint32 warnings
- fix track_scale double->uint64 warning
- nestegg_packet_track: fix uint64->uint32 warning
+- ne_read_(string|binary|block): normalize size_t usage
+- ne_parse: normalize size_t usage
+- quiet read related uint64->size_t warnings
+- ne_buffer_read: quiet uint64->size_t warning
--- a/third_party/nestegg/src/nestegg.c
+++ b/third_party/nestegg/src/nestegg.c
@@ -694,14 +694,15 @@
{
char * str;
int r;
+ const size_t alloc_size = (size_t)length + 1;
if (length == 0 || length > LIMIT_STRING)
return -1;
- str = ne_pool_alloc(length + 1, ctx->alloc_pool);
- r = ne_io_read(ctx->io, (unsigned char *) str, length);
+ str = ne_pool_alloc(alloc_size, ctx->alloc_pool);
+ r = ne_io_read(ctx->io, (unsigned char *) str, alloc_size - 1);
if (r != 1)
return r;
- str[length] = '\0';
+ str[alloc_size - 1] = '\0';
*val = str;
return 1;
}
@@ -711,9 +712,9 @@
{
if (length == 0 || length > LIMIT_BINARY)
return -1;
- val->data = ne_pool_alloc(length, ctx->alloc_pool);
- val->length = length;
- return ne_io_read(ctx->io, val->data, length);
+ val->length = (size_t)length;
+ val->data = ne_pool_alloc(val->length, ctx->alloc_pool);
+ return ne_io_read(ctx->io, val->data, val->length);
}
static int
@@ -1043,7 +1044,7 @@
ne_read_single_master(ctx, element);
continue;
} else {
- r = ne_read_simple(ctx, element, size);
+ r = ne_read_simple(ctx, element, (size_t)size);
if (r < 0)
break;
}
@@ -1062,7 +1063,7 @@
if (id != ID_VOID && id != ID_CRC32)
ctx->log(ctx, NESTEGG_LOG_DEBUG, "unknown element %llx", id);
- r = ne_io_read_skip(ctx->io, size);
+ r = ne_io_read_skip(ctx->io, (size_t)size);
if (r != 1)
break;
}
@@ -1151,7 +1152,8 @@
r = ne_read_vint(io, &lace, &length);
if (r != 1)
return r;
- *read += length;
+ assert(length <= 8);
+ *read += (size_t)length;
sizes[i] = lace;
sum = sizes[i];
@@ -1163,7 +1165,8 @@
r = ne_read_svint(io, &slace, &length);
if (r != 1)
return r;
- *read += length;
+ assert(length <= 8);
+ *read += (size_t)length;
sizes[i] = sizes[i - 1] + slace;
sum += sizes[i];
i += 1;
@@ -1263,7 +1266,8 @@
if (track_number == 0 || (unsigned int)track_number != track_number)
return -1;
- consumed += length;
+ assert(length <= 8);
+ consumed += (size_t)length;
r = ne_read_int(ctx->io, &timecode, 2);
if (r != 1)
@@ -1307,7 +1311,7 @@
case LACING_XIPH:
if (frames == 1)
return -1;
- r = ne_read_xiph_lacing(ctx->io, block_size, &consumed, frames, frame_sizes);
+ r = ne_read_xiph_lacing(ctx->io, (size_t)block_size, &consumed, frames, frame_sizes);
if (r != 1)
return r;
break;
@@ -1320,7 +1324,7 @@
case LACING_EBML:
if (frames == 1)
return -1;
- r = ne_read_ebml_lacing(ctx->io, block_size, &consumed, frames, frame_sizes);
+ r = ne_read_ebml_lacing(ctx->io, (size_t)block_size, &consumed, frames, frame_sizes);
if (r != 1)
return r;
break;
@@ -1365,9 +1369,9 @@
return -1;
}
f = ne_alloc(sizeof(*f));
- f->data = ne_alloc(frame_sizes[i]);
- f->length = frame_sizes[i];
- r = ne_io_read(ctx->io, f->data, frame_sizes[i]);
+ f->length = (size_t)frame_sizes[i];
+ f->data = ne_alloc(f->length);
+ r = ne_io_read(ctx->io, f->data, f->length);
if (r != 1) {
free(f->data);
free(f);
@@ -1406,7 +1410,8 @@
if (!element)
return 1;
- r = ne_read_simple(ctx, element, size);
+ assert((size_t)size == size);
+ r = ne_read_simple(ctx, element, (size_t)size);
if (r != 1)
return r;
storage = (struct ebml_type *) (ctx->ancestor->data + element->offset);
@@ -1600,7 +1605,7 @@
struct sniff_buffer * sb = user_data;
int rv = 1;
- size_t available = sb->length - sb->offset;
+ size_t available = sb->length - (size_t)sb->offset;
if (available < length)
return 0;
@@ -2074,7 +2079,7 @@
p += sizes[i];
}
*data = p;
- *length = sizes[item];
+ *length = (size_t)sizes[item];
} else {
*data = codec_private.data;
*length = codec_private.length;
--
⑨