diff options
Diffstat (limited to 'libpam')
-rw-r--r-- | libpam/pam_modutil_ioloop.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libpam/pam_modutil_ioloop.c b/libpam/pam_modutil_ioloop.c index 9b73ed75..72b58455 100644 --- a/libpam/pam_modutil_ioloop.c +++ b/libpam/pam_modutil_ioloop.c @@ -15,6 +15,11 @@ pam_modutil_read(int fd, char *buffer, int count) { int block, offset = 0; + if (count < 0) { + errno = EINVAL; + return -1; + } + while (count > 0) { block = read(fd, &buffer[offset], count); @@ -36,6 +41,11 @@ pam_modutil_write(int fd, const char *buffer, int count) { int block, offset = 0; + if (count < 0) { + errno = EINVAL; + return -1; + } + while (count > 0) { block = write(fd, &buffer[offset], count); |