1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-16 15:11:52 +00:00

- Fix terminating argument to execl(3), sizeof(NULL) != sizeof(char *)

might be true on some systems [1]
- Rewrite gotos to use return directly
- Some spelling fixes
- Reduce unneeded/non-standard Makefile settings

Requested by:			bde, imp [1]
Explanation provided by:	bde [1]
Reviewed by:			imp
This commit is contained in:
Ulrich Spörlein 2010-05-19 08:52:51 +00:00
parent f0268739c7
commit cd0788e137
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=208289
3 changed files with 11 additions and 23 deletions

View File

@ -10,12 +10,7 @@ WARNS?= 3
DPADD= ${LIBL}
LDADD= -ll
YFLAGS+=-v
CFLAGS+=-I. -I${.CURDIR} #-DYY_STACK_USED
# for debug:
#CFLAGS+= -g -DDEBUG
CLEANFILES= y.output
CFLAGS+= -I${.CURDIR}
test:
./apmd -d -f etc/apmd.conf -n

View File

@ -92,7 +92,7 @@ apm_event SUSPENDREQ {
exec "zzz";
}
Will cause apmd to recieve the APM event SUSPENDREQ (which may be
Will cause apmd to receive the APM event SUSPENDREQ (which may be
posted by an LCD close), run the sync command 3 times and wait for a
while, then execute zzz (apm -z) to put the system in the suspend
state.
@ -130,7 +130,7 @@ Other events will not be sent to apmd.
4.3 command line syntax
-----------------------
In the example above, the three lines begining with `exec' are commands
In the example above, the three lines beginning with `exec' are commands
for the event. Each line should be terminated with a semicolon. The
command list for the event should be enclosed by `{' and `}'. apmd(8)
uses /bin/sh for double-quotation enclosed command execution, just as

View File

@ -115,13 +115,13 @@ event_cmd_exec_act(void *this)
switch ((pid = fork())) {
case -1:
warn("cannot fork");
goto out;
break;
case 0:
/* child process */
signal(SIGHUP, SIG_DFL);
signal(SIGCHLD, SIG_DFL);
signal(SIGTERM, SIG_DFL);
execl(_PATH_BSHELL, "sh", "-c", p->line, NULL);
execl(_PATH_BSHELL, "sh", "-c", p->line, (char *)NULL);
_exit(127);
default:
/* parent process */
@ -130,7 +130,6 @@ event_cmd_exec_act(void *this)
} while (pid == -1 && errno == EINTR);
break;
}
out:
return status;
}
void
@ -165,19 +164,17 @@ struct event_cmd_op event_cmd_exec_ops = {
};
/*
* reject commad
* reject command
*/
int
event_cmd_reject_act(void *this __unused)
{
int rc = -1;
int rc = 0;
if (ioctl(apmctl_fd, APMIO_REJECTLASTREQ, NULL)) {
syslog(LOG_NOTICE, "fail to reject\n");
goto out;
rc = -1;
}
rc = 0;
out:
return rc;
}
struct event_cmd_op event_cmd_reject_ops = {
@ -466,7 +463,7 @@ wait_child(void)
int
proc_signal(int fd)
{
int rc = -1;
int rc = 0;
int sig;
while (read(fd, &sig, sizeof sig) == sizeof sig) {
@ -479,7 +476,7 @@ proc_signal(int fd)
case SIGTERM:
syslog(LOG_NOTICE, "going down on signal %d", sig);
rc = -1;
goto out;
return rc;
case SIGCHLD:
wait_child();
break;
@ -488,8 +485,6 @@ proc_signal(int fd)
break;
}
}
rc = 0;
out:
return rc;
}
void
@ -630,14 +625,12 @@ event_loop(void)
if (FD_ISSET(signal_fd[0], &rfds)) {
if (proc_signal(signal_fd[0]) < 0)
goto out;
return;
}
if (FD_ISSET(apmctl_fd, &rfds))
proc_apmevent(apmctl_fd);
}
out:
return;
}
int