aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/split/split.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/split/split.c')
-rw-r--r--usr.bin/split/split.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr.bin/split/split.c b/usr.bin/split/split.c
index e246a0d4adfc..52374c93efca 100644
--- a/usr.bin/split/split.c
+++ b/usr.bin/split/split.c
@@ -401,6 +401,10 @@ newfile(void)
*/
if (!dflag && autosfx && (fpnt[0] == 'y') &&
strspn(fpnt+1, "z") == strlen(fpnt+1)) {
+ /* Ensure the generated filenames will fit into the buffer. */
+ if (strlen(fname) + 2 >= sizeof(fname))
+ errx(EX_USAGE, "combined filenames would be too long");
+
fpnt = fname + strlen(fname) - sufflen;
fpnt[sufflen + 2] = '\0';
fpnt[0] = end;