From: Justin C. Sherrill Date: Wed, 24 Aug 2011 01:40:40 +0000 (-0700) Subject: From NetBSD revision 1.10: X-Git-Tag: v2.12.0~129 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/ada9595606d91dd3fb77e5fc21995b0895be5fe4 From NetBSD revision 1.10: "set errno on overflow return." Suggested-by: Joerg Sonnenberger --- diff --git a/usr.bin/gzip/zuncompress.c b/usr.bin/gzip/zuncompress.c index b2a21bf5a9..34e7f8c0e9 100644 --- a/usr.bin/gzip/zuncompress.c +++ b/usr.bin/gzip/zuncompress.c @@ -1,4 +1,4 @@ -/* $NetBSD: zuncompress.c,v 1.7 2009/04/12 10:31:14 lukem Exp $ */ +/* $NetBSD: zuncompress.c,v 1.10 2011/08/16 03:25:34 christos Exp $ */ /* $DragonFly: src/usr.bin/gzip/zuncompress.c,v 1.1 2004/10/26 11:19:31 joerg Exp $ */ /*- @@ -289,8 +289,10 @@ zread(void *cookie, char *rbp, int num) /* Generate output characters in reverse order. */ while (zs->u.r.zs_code >= 256) { - if (zs->u.r.zs_stackp - de_stack >= HSIZE - 1) + if (zs->u.r.zs_stackp - de_stack >= HSIZE - 1) { + errno = EOVERFLOW; return -1; + } *zs->u.r.zs_stackp++ = tab_suffixof(zs->u.r.zs_code); zs->u.r.zs_code = tab_prefixof(zs->u.r.zs_code); }