=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/usbhidaction/usbhidaction.c,v retrieving revision 1.14 retrieving revision 1.15 diff -c -r1.14 -r1.15 *** src/usr.bin/usbhidaction/usbhidaction.c 2010/06/29 17:16:35 1.14 --- src/usr.bin/usbhidaction/usbhidaction.c 2011/03/07 14:59:06 1.15 *************** *** 1,4 **** ! /* $OpenBSD: usbhidaction.c,v 1.14 2010/06/29 17:16:35 deraadt Exp $ */ /* $NetBSD: usbhidaction.c,v 1.7 2002/01/18 14:38:59 augustss Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: usbhidaction.c,v 1.15 2011/03/07 14:59:06 jasper Exp $ */ /* $NetBSD: usbhidaction.c,v 1.7 2002/01/18 14:38:59 augustss Exp $ */ /* *************** *** 46,51 **** --- 46,52 ---- #include #include #include + #include int verbose = 0; int isdemon = 0; *************** *** 399,404 **** --- 400,406 ---- char cmdbuf[SIZE], *p, *q; size_t len; int n, r; + pid_t pid; if (cmd->action == NULL) { if (verbose) *************** *** 437,447 **** } *q = 0; ! if (verbose) ! printf("system '%s'\n", cmdbuf); ! r = system(cmdbuf); ! if (verbose > 1 && r) ! printf("return code = 0x%x\n", r); } void --- 439,454 ---- } *q = 0; ! pid = fork(); ! if (pid == -1) ! warn("fork failed"); ! else if (pid == 0) { ! setpgid(0, 0); ! if (verbose) ! printf("executing '%s'\n", cmdbuf); ! r = execl(_PATH_BSHELL, "sh", "-c", cmdbuf, NULL); ! err(1, "execl"); ! } } void