diff options
-rw-r--r-- | miscutils/makedevs.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c index 6278ee77c..c5eeed0e0 100644 --- a/miscutils/makedevs.c +++ b/miscutils/makedevs.c | |||
@@ -157,8 +157,11 @@ int makedevs_main(int argc, char **argv) | |||
157 | 157 | ||
158 | /* if mode != S_IFCHR and != S_IFBLK, | 158 | /* if mode != S_IFCHR and != S_IFBLK, |
159 | * third param in mknod() ignored */ | 159 | * third param in mknod() ignored */ |
160 | if (mknod(nodname, mode, makedev(Smajor, Sminor))) | 160 | if (mknod(nodname, mode, makedev(Smajor, Sminor)) != 0 |
161 | && errno != EEXIST | ||
162 | ) { | ||
161 | bb_perror_msg("can't create '%s'", nodname); | 163 | bb_perror_msg("can't create '%s'", nodname); |
164 | } | ||
162 | 165 | ||
163 | /*if (nodname == basedev)*/ /* ex. /dev/hda - to /dev/hda1 ... */ | 166 | /*if (nodname == basedev)*/ /* ex. /dev/hda - to /dev/hda1 ... */ |
164 | nodname = buf; | 167 | nodname = buf; |
@@ -279,7 +282,9 @@ int makedevs_main(int argc UNUSED_PARAM, char **argv) | |||
279 | for (i = start; i <= start + count; i++) { | 282 | for (i = start; i <= start + count; i++) { |
280 | sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); | 283 | sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i); |
281 | rdev = makedev(major, minor + (i - start) * increment); | 284 | rdev = makedev(major, minor + (i - start) * increment); |
282 | if (mknod(full_name_inc, mode, rdev) < 0) { | 285 | if (mknod(full_name_inc, mode, rdev) != 0 |
286 | && errno != EEXIST | ||
287 | ) { | ||
283 | bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); | 288 | bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc); |
284 | ret = EXIT_FAILURE; | 289 | ret = EXIT_FAILURE; |
285 | } else if (chown(full_name_inc, uid, gid) < 0) { | 290 | } else if (chown(full_name_inc, uid, gid) < 0) { |