aboutsummaryrefslogtreecommitdiff
path: root/miscutils/makedevs.c
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2002-06-06 14:36:07 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2002-06-06 14:36:07 +0000
commitb648c8c348fa6235bac655035c7e58130b539941 (patch)
treedb2099309260e77f0f5aaae697b8fc1c54691c8d /miscutils/makedevs.c
parentabcf9ac7567615ca59e4ff70cc8107599d796105 (diff)
downloadbusybox-w32-b648c8c348fa6235bac655035c7e58130b539941.tar.gz
busybox-w32-b648c8c348fa6235bac655035c7e58130b539941.tar.bz2
busybox-w32-b648c8c348fa6235bac655035c7e58130b539941.zip
Fix buffer overflows noted by Gerardo Puga
-Erik git-svn-id: svn://busybox.net/trunk/busybox@4872 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'miscutils/makedevs.c')
-rw-r--r--miscutils/makedevs.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c
index 4e50a6d71..f55995685 100644
--- a/miscutils/makedevs.c
+++ b/miscutils/makedevs.c
@@ -52,9 +52,13 @@ int makedevs_main(int argc, char **argv)
52 52
53 if (type[0] != 'f') 53 if (type[0] != 'f')
54 dev = (major << 8) | Sminor; 54 dev = (major << 8) | Sminor;
55 strcpy(devname, basedev); 55 safe_strncpy(devname, basedev, sizeof(devname));
56 56
57 if (sbase == 0) { 57 if (sbase == 0) {
58 int len;
59 len = strlen(devname);
60 if (S > 10000 || len > (sizeof(devname)-6))
61 error_msg_and_die("%s: number too large", buf);
58 sprintf(buf, "%d", S); 62 sprintf(buf, "%d", S);
59 strcat(devname, buf); 63 strcat(devname, buf);
60 } else { 64 } else {