summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2016-05-30 13:51:27 +0000
committered <ed@FreeBSD.org>2016-05-30 13:51:27 +0000
commit68f1f316239562e4a08c9e54b851f916761a9b84 (patch)
tree1cdce214d42751df7acc477c7fd2485654996d05
parent3e4cb7353ede7e585e56a1dec5a9b64630722844 (diff)
downloadFreeBSD-src-68f1f316239562e4a08c9e54b851f916761a9b84.zip
FreeBSD-src-68f1f316239562e4a08c9e54b851f916761a9b84.tar.gz
Fix the signature of the psignal() function.
POSIX 2008 added the psignal() function which has already been part of the BSDs for a long time. The only difference is, the POSIX version uses an 'int' for the signal number, unlike our version which uses an 'unsigned int'. Fix up the function to use an 'int'. This should not affect the ABI.
-rw-r--r--include/signal.h2
-rw-r--r--lib/libc/gen/psignal.34
-rw-r--r--lib/libc/gen/psignal.c4
3 files changed, 5 insertions, 5 deletions
diff --git a/include/signal.h b/include/signal.h
index 217fadd..9f33fb6 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -113,7 +113,7 @@ int siginterrupt(int, int);
#endif
#if __POSIX_VISIBLE >= 200809
-void psignal(unsigned int, const char *);
+void psignal(int, const char *);
#endif
#if __BSD_VISIBLE
diff --git a/lib/libc/gen/psignal.3 b/lib/libc/gen/psignal.3
index 231acfa..ed7023b 100644
--- a/lib/libc/gen/psignal.3
+++ b/lib/libc/gen/psignal.3
@@ -28,7 +28,7 @@
.\" @(#)psignal.3 8.2 (Berkeley) 2/27/95
.\" $FreeBSD$
.\"
-.Dd February 4, 2011
+.Dd May 30, 2016
.Dt PSIGNAL 3
.Os
.Sh NAME
@@ -42,7 +42,7 @@
.Sh SYNOPSIS
.In signal.h
.Ft void
-.Fn psignal "unsigned sig" "const char *s"
+.Fn psignal "int sig" "const char *s"
.Vt extern const char * const sys_siglist[] ;
.Vt extern const char * const sys_signame[] ;
.In string.h
diff --git a/lib/libc/gen/psignal.c b/lib/libc/gen/psignal.c
index 5c5aada..d1c70c6 100644
--- a/lib/libc/gen/psignal.c
+++ b/lib/libc/gen/psignal.c
@@ -44,11 +44,11 @@ __FBSDID("$FreeBSD$");
#include "un-namespace.h"
void
-psignal(unsigned int sig, const char *s)
+psignal(int sig, const char *s)
{
const char *c;
- if (sig < NSIG)
+ if (sig >= 0 && sig < NSIG)
c = sys_siglist[sig];
else
c = "Unknown signal";
OpenPOWER on IntegriCloud