summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <Todd.Miller@sudo.ws>2023-05-05 10:20:21 -0600
committerTodd C. Miller <Todd.Miller@sudo.ws>2023-05-05 10:20:21 -0600
commitb7e52eb3538d2c185e8d2947c27f18d8ec42a5c7 (patch)
tree4429a41a58343f6fd4613ac25616c1fadd90481d
parent81ac4219ebb494294bd90eb4c534626364f1cdac (diff)
downloadsudo-b7e52eb3538d2c185e8d2947c27f18d8ec42a5c7.tar.gz
iolog_gets: change size parameter to int to match fgets/gzgets
Return an error, setting errno to EINVAL, for negative sizes.
-rw-r--r--include/sudo_iolog.h2
-rw-r--r--lib/iolog/iolog_gets.c10
2 files changed, 6 insertions, 6 deletions
diff --git a/include/sudo_iolog.h b/include/sudo_iolog.h
index 599424184..7535e284b 100644
--- a/include/sudo_iolog.h
+++ b/include/sudo_iolog.h
@@ -119,7 +119,7 @@ bool iolog_mkpath(char *path);
bool iolog_nextid(const char *iolog_dir, char sessid[7]);
bool iolog_open(struct iolog_file *iol, int dfd, int iofd, const char *mode);
bool iolog_write_info_file(int dfd, struct eventlog *evlog);
-char *iolog_gets(struct iolog_file *iol, char *buf, size_t nbytes, const char **errsttr);
+char *iolog_gets(struct iolog_file *iol, char *buf, int bufsize, const char **errsttr);
const char *iolog_fd_to_name(int iofd);
int iolog_openat(int fdf, const char *path, int flags);
off_t iolog_seek(struct iolog_file *iol, off_t offset, int whence);
diff --git a/lib/iolog/iolog_gets.c b/lib/iolog/iolog_gets.c
index 0ef5a2362..38d7eae28 100644
--- a/lib/iolog/iolog_gets.c
+++ b/lib/iolog/iolog_gets.c
@@ -40,16 +40,16 @@
#include "sudo_iolog.h"
/*
- * Like gets() but for struct iolog_file.
+ * Like fgets() but for struct iolog_file.
*/
char *
-iolog_gets(struct iolog_file *iol, char *buf, size_t nbytes,
+iolog_gets(struct iolog_file *iol, char *buf, int bufsize,
const char **errstr)
{
char *str;
debug_decl(iolog_gets, SUDO_DEBUG_UTIL);
- if (nbytes > UINT_MAX) {
+ if (bufsize < 0) {
errno = EINVAL;
if (errstr != NULL)
*errstr = strerror(errno);
@@ -58,7 +58,7 @@ iolog_gets(struct iolog_file *iol, char *buf, size_t nbytes,
#ifdef HAVE_ZLIB_H
if (iol->compressed) {
- if ((str = gzgets(iol->fd.g, buf, nbytes)) == NULL) {
+ if ((str = gzgets(iol->fd.g, buf, bufsize)) == NULL) {
if (errstr != NULL) {
int errnum;
*errstr = gzerror(iol->fd.g, &errnum);
@@ -69,7 +69,7 @@ iolog_gets(struct iolog_file *iol, char *buf, size_t nbytes,
} else
#endif
{
- if ((str = fgets(buf, nbytes, iol->fd.f)) == NULL) {
+ if ((str = fgets(buf, bufsize, iol->fd.f)) == NULL) {
if (errstr != NULL)
*errstr = strerror(errno);
}