diff options
| author | David E. O'Brien <obrien@FreeBSD.org> | 2004-05-03 10:29:23 +0000 |
|---|---|---|
| committer | David E. O'Brien <obrien@FreeBSD.org> | 2004-05-03 10:29:23 +0000 |
| commit | 78b67cd1f8f09e4fb9247657f5bc5e1b815a2fb4 (patch) | |
| tree | 8b9ffcf18f6cb9ea2db188bcb42f010dea729dd2 /gnu/usr.bin | |
| parent | ec0a06b8b308b29c25c4ca11219eaabd27c9216d (diff) | |
Notes
Diffstat (limited to 'gnu/usr.bin')
| -rw-r--r-- | gnu/usr.bin/gzip/gzip.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gnu/usr.bin/gzip/gzip.c b/gnu/usr.bin/gzip/gzip.c index b59b4d1a7a4c..06b0a32077f2 100644 --- a/gnu/usr.bin/gzip/gzip.c +++ b/gnu/usr.bin/gzip/gzip.c @@ -1011,14 +1011,15 @@ local int get_istat(iname, sbuf) #ifdef NO_MULTIPLE_DOTS char *dot; /* pointer to ifname extension, or NULL */ #endif + int max_suffix_len = (z_len > 3 ? z_len : 3); - if (strlen(iname) >= sizeof(ifname) - 3) { + /* Leave enough room in ifname or ofname for suffix: */ + if (strlen(iname) >= sizeof(ifname) - max_suffix_len) { errno = ENAMETOOLONG; perror(iname); exit_code = ERROR; return ERROR; } - strcpy(ifname, iname); /* If input file exists, return OK. */ |
