From: Nick Mathewson Date: Sun, 4 Jan 2009 23:15:42 +0000 (+0000) Subject: Another fun openbsd warning fix. On ioerror's computer at least, they redefined... X-Git-Tag: tor-0.2.1.10-alpha~20 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=765bb14f69e1d8a7998025a690ef4ca3dc56d756;p=thirdparty%2Ftor.git Another fun openbsd warning fix. On ioerror's computer at least, they redefined an unsigned field in zlib.h to be signed. I am quite sure this makes me more secure somehow. svn:r17892 --- diff --git a/src/common/torgzip.c b/src/common/torgzip.c index 0347d59eb4..180c1e6dfd 100644 --- a/src/common/torgzip.c +++ b/src/common/torgzip.c @@ -140,7 +140,16 @@ tor_gzip_compress(char **out, size_t *out_len, } done: *out_len = stream->total_out; - if (stream->total_out > out_size + 4097) { +#ifdef OPENBSD + /* "Hey Rocky! Watch me change an unsigned field to a signed field in a + * third-party API!" + * "Oh, that trick will just make people do unsafe casts to the unsigned + * type in their cross-platform code!" + * "Don't be foolish. I'm _sure_ they'll have the good sense to make sure + * the newly unsigned field isn't negative." */ + tor_assert(stream->total_out >= 0); +#endif + if (((size_t)stream->total_out) > out_size + 4097) { /* If we're wasting more than 4k, don't. */ *out = tor_realloc(*out, stream->total_out + 1); }