diff options
author | Roy Marples <roy@marples.name> | 2008-01-07 12:29:30 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-01-07 12:29:30 +0000 |
commit | 43d0f3fc76542d0859c9b84402c0483a22e02b68 (patch) | |
tree | 125bcc9bf644a6390718868312df2b6be1905e89 /src/rc/rc-logger.c | |
parent | 74e0e58b899accd2bd72a7d7303331e47089959f (diff) |
rc_getline keeps expanding it's malloced buffer until it has read a whole line or EOF. All functions which read into static buffers have been changed to use fhis function to avoid any potential overflows and to ensure we really do read a long long config line.
Diffstat (limited to 'src/rc/rc-logger.c')
-rw-r--r-- | src/rc/rc-logger.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/rc/rc-logger.c b/src/rc/rc-logger.c index 675a4d23..f4c610a2 100644 --- a/src/rc/rc-logger.c +++ b/src/rc/rc-logger.c @@ -181,12 +181,12 @@ void rc_logger_open (const char *level) write_time (log, "started"); else { free (logbuf); - logbuf_size = RC_LINEBUFFER * 10; + logbuf_size = BUFSIZ * 10; logbuf = xmalloc (sizeof (char) * logbuf_size); logbuf_len = 0; } - buffer = xmalloc (sizeof (char) * RC_LINEBUFFER); + buffer = xmalloc (sizeof (char) * BUFSIZ); selfd = rc_logger_tty > signal_pipe[0] ? rc_logger_tty : signal_pipe[0]; while (1) { FD_ZERO (&rset); @@ -200,15 +200,15 @@ void rc_logger_open (const char *level) if (s > 0) { if (FD_ISSET (rc_logger_tty, &rset)) { - memset (buffer, 0, RC_LINEBUFFER); - bytes = read (rc_logger_tty, buffer, RC_LINEBUFFER); + memset (buffer, 0, BUFSIZ); + bytes = read (rc_logger_tty, buffer, BUFSIZ); write (STDOUT_FILENO, buffer, bytes); if (log) write_log (fileno (log), buffer, bytes); else { if (logbuf_size - logbuf_len < bytes) { - logbuf_size += RC_LINEBUFFER * 10; + logbuf_size += BUFSIZ * 10; logbuf = xrealloc (logbuf, sizeof (char ) * logbuf_size); } |