aboutsummaryrefslogtreecommitdiff
path: root/miscutils/devfsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils/devfsd.c')
-rw-r--r--miscutils/devfsd.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/miscutils/devfsd.c b/miscutils/devfsd.c
index 814fbd686..1dfbadf83 100644
--- a/miscutils/devfsd.c
+++ b/miscutils/devfsd.c
@@ -234,7 +234,6 @@ static char get_old_ide_name(unsigned , unsigned);
234static char *write_old_sd_name(char *, unsigned, unsigned, const char *); 234static char *write_old_sd_name(char *, unsigned, unsigned, const char *);
235 235
236/* busybox functions */ 236/* busybox functions */
237static void do_ioctl_or_die(int fd, int request, unsigned long event_mask_flag);
238static int get_uid_gid(int flag, const char *string); 237static int get_uid_gid(int flag, const char *string);
239static void safe_memcpy(char * dest, const char * src, int len); 238static void safe_memcpy(char * dest, const char * src, int len);
240static unsigned int scan_dev_name_common(const char *d, unsigned int n, int addendum, const char *ptr); 239static unsigned int scan_dev_name_common(const char *d, unsigned int n, int addendum, const char *ptr);
@@ -298,12 +297,6 @@ static const char * const bb_msg_variable_not_found = "variable: %s not found";
298#define error_logger_and_die(p, fmt, args...) exit(1) 297#define error_logger_and_die(p, fmt, args...) exit(1)
299#endif 298#endif
300 299
301static void do_ioctl_or_die(int fd, int request, unsigned long event_mask_flag)
302{
303 if (ioctl(fd, request, event_mask_flag) == -1)
304 msg_logger_and_die(LOG_ERR, "ioctl");
305}
306
307static void safe_memcpy(char *dest, const char *src, int len) 300static void safe_memcpy(char *dest, const char *src, int len)
308{ 301{
309 memcpy(dest , src, len); 302 memcpy(dest , src, len);
@@ -386,8 +379,7 @@ int devfsd_main(int argc, char **argv)
386 if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0) 379 if (fcntl(fd, F_SETFD, FD_CLOEXEC) != 0)
387 bb_perror_msg_and_die("FD_CLOEXEC"); 380 bb_perror_msg_and_die("FD_CLOEXEC");
388 381
389 if (ioctl(fd, DEVFSDIOC_GET_PROTO_REV, &proto_rev) == -1) 382 xioctl(fd, DEVFSDIOC_GET_PROTO_REV, &proto_rev);
390 bb_perror_msg_and_die("ioctl");
391 383
392 /*setup initial entries */ 384 /*setup initial entries */
393 for (curr = initial_symlinks; curr->dest != NULL; ++curr) 385 for (curr = initial_symlinks; curr->dest != NULL; ++curr)
@@ -404,7 +396,7 @@ int devfsd_main(int argc, char **argv)
404 exit(EXIT_SUCCESS); /* -v */ 396 exit(EXIT_SUCCESS); /* -v */
405 } 397 }
406 /* Tell kernel we are special(i.e. we get to see hidden entries) */ 398 /* Tell kernel we are special(i.e. we get to see hidden entries) */
407 do_ioctl_or_die(fd, DEVFSDIOC_SET_EVENT_MASK, 0); 399 xioctl(fd, DEVFSDIOC_SET_EVENT_MASK, 0);
408 400
409 sigemptyset(&new_action.sa_mask); 401 sigemptyset(&new_action.sa_mask);
410 new_action.sa_flags = 0; 402 new_action.sa_flags = 0;
@@ -435,7 +427,7 @@ int devfsd_main(int argc, char **argv)
435 427
436 if (do_daemon) { 428 if (do_daemon) {
437 /* Release so that the child can grab it */ 429 /* Release so that the child can grab it */
438 do_ioctl_or_die(fd, DEVFSDIOC_RELEASE_EVENT_QUEUE, 0); 430 xioctl(fd, DEVFSDIOC_RELEASE_EVENT_QUEUE, 0);
439 bb_daemonize_or_rexec(0, argv); 431 bb_daemonize_or_rexec(0, argv);
440 } else if (ENABLE_DEVFSD_FG_NP) { 432 } else if (ENABLE_DEVFSD_FG_NP) {
441 setpgid(0, 0); /* Become process group leader */ 433 setpgid(0, 0); /* Become process group leader */
@@ -661,7 +653,7 @@ static int do_servicing(int fd, unsigned long event_mask)
661 653
662 /* Tell devfs what events we care about */ 654 /* Tell devfs what events we care about */
663 tmp_event_mask = event_mask; 655 tmp_event_mask = event_mask;
664 do_ioctl_or_die(fd, DEVFSDIOC_SET_EVENT_MASK, tmp_event_mask); 656 xioctl(fd, DEVFSDIOC_SET_EVENT_MASK, tmp_event_mask);
665 while (!caught_signal) { 657 while (!caught_signal) {
666 errno = 0; 658 errno = 0;
667 bytes = read(fd,(char *) &info, sizeof info); 659 bytes = read(fd,(char *) &info, sizeof info);