projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
missing error return
[unix-history]
/
usr
/
src
/
sys
/
kern
/
kern_sig.c
diff --git
a/usr/src/sys/kern/kern_sig.c
b/usr/src/sys/kern/kern_sig.c
index
ce67d71
..
614642a
100644
(file)
--- a/
usr/src/sys/kern/kern_sig.c
+++ b/
usr/src/sys/kern/kern_sig.c
@@
-3,7
+3,7
@@
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
- * @(#)kern_sig.c 6.
17
(Berkeley) %G%
+ * @(#)kern_sig.c 6.
21
(Berkeley) %G%
*/
#include "../machine/reg.h"
*/
#include "../machine/reg.h"
@@
-28,6
+28,8
@@
#include "kernel.h"
#define cantmask (sigmask(SIGKILL)|sigmask(SIGCONT)|sigmask(SIGSTOP))
#include "kernel.h"
#define cantmask (sigmask(SIGKILL)|sigmask(SIGCONT)|sigmask(SIGSTOP))
+#define stopsigmask (sigmask(SIGSTOP)|sigmask(SIGTSTP)| \
+ sigmask(SIGTTIN)|sigmask(SIGTTOU))
/*
* Generalized interface signal handler.
/*
* Generalized interface signal handler.
@@
-268,7
+270,7
@@
killpg1(signo, pgrp, all)
if (signo)
psignal(p, signo);
}
if (signo)
psignal(p, signo);
}
- return (
f == 0 ? ESRCH : error
);
+ return (
error ? error : (f == 0 ? ESRCH : 0)
);
}
/*
}
/*
@@
-323,8
+325,6
@@
psignal(p, sig)
else
action = SIG_DFL;
}
else
action = SIG_DFL;
}
-#define stops (sigmask(SIGSTOP)|sigmask(SIGTSTP)| \
- sigmask(SIGTTIN)|sigmask(SIGTTOU))
if (sig) {
p->p_sig |= mask;
switch (sig) {
if (sig) {
p->p_sig |= mask;
switch (sig) {
@@
-340,7
+340,7
@@
psignal(p, sig)
break;
case SIGCONT:
break;
case SIGCONT:
- p->p_sig &= ~stops;
+ p->p_sig &= ~stops
igmask
;
break;
case SIGSTOP:
break;
case SIGSTOP:
@@
-351,7
+351,6
@@
psignal(p, sig)
break;
}
}
break;
}
}
-#undef stops
/*
* Defer further processing for signals which are held.
*/
/*
* Defer further processing for signals which are held.
*/
@@
-531,11
+530,10
@@
issig()
if ((p->p_flag&STRC) == 0)
sigbits &= ~p->p_sigignore;
if (p->p_flag&SVFORK)
if ((p->p_flag&STRC) == 0)
sigbits &= ~p->p_sigignore;
if (p->p_flag&SVFORK)
-#define bit(a) (1<<(a-1))
- sigbits &= ~(bit(SIGSTOP)|bit(SIGTSTP)|bit(SIGTTIN)|bit(SIGTTOU));
+ sigbits &= ~stopsigmask;
if (sigbits == 0)
break;
if (sigbits == 0)
break;
- sig = ffs(sigbits);
+ sig = ffs(
(long)
sigbits);
mask = sigmask(sig);
p->p_sig &= ~mask; /* take the signal! */
p->p_cursig = sig;
mask = sigmask(sig);
p->p_sig &= ~mask; /* take the signal! */
p->p_cursig = sig;
@@
-580,7
+578,7
@@
issig()
continue;
}
}
continue;
}
}
- switch (u.u_signal[sig]) {
+ switch (
(int)
u.u_signal[sig]) {
case SIG_DFL:
/*
case SIG_DFL:
/*
@@
-791,17
+789,17
@@
core()
u.u_error = rdwri(UIO_WRITE, ip,
(caddr_t)&u,
ctob(UPAGES),
u.u_error = rdwri(UIO_WRITE, ip,
(caddr_t)&u,
ctob(UPAGES),
- 0, 1, (int *)0);
+
(off_t)
0, 1, (int *)0);
if (u.u_error == 0)
u.u_error = rdwri(UIO_WRITE, ip,
(caddr_t)ctob(dptov(u.u_procp, 0)),
if (u.u_error == 0)
u.u_error = rdwri(UIO_WRITE, ip,
(caddr_t)ctob(dptov(u.u_procp, 0)),
- ctob(u.u_dsize),
- ctob(UPAGES), 0, (int *)0);
+
(int)
ctob(u.u_dsize),
+
(off_t)
ctob(UPAGES), 0, (int *)0);
if (u.u_error == 0)
u.u_error = rdwri(UIO_WRITE, ip,
(caddr_t)ctob(sptov(u.u_procp, u.u_ssize - 1)),
if (u.u_error == 0)
u.u_error = rdwri(UIO_WRITE, ip,
(caddr_t)ctob(sptov(u.u_procp, u.u_ssize - 1)),
- ctob(u.u_ssize),
- ctob(UPAGES)+ctob(u.u_dsize), 0, (int *)0);
+
(int)
ctob(u.u_ssize),
+
(off_t)
ctob(UPAGES)+ctob(u.u_dsize), 0, (int *)0);
out:
iput(ip);
return (u.u_error == 0);
out:
iput(ip);
return (u.u_error == 0);