diff options
author | rlar <rlar> | 2016-03-01 17:59:09 +0100 |
---|---|---|
committer | Will Estes <westes575@gmail.com> | 2016-03-08 15:20:45 -0500 |
commit | 00bc43fa045008aa306ef07d4f5d018d91f233ed (patch) | |
tree | ef49347e8314f4d2193d32dc76a67ef9bd81d02b /src | |
parent | c7b3db795737dc396a3106b1957207ab56f786b7 (diff) |
cast and fix usage of log10(), ceil to prevent buffer overflow
Diffstat (limited to 'src')
-rw-r--r-- | src/buf.c | 2 | ||||
-rw-r--r-- | src/main.c | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -100,7 +100,7 @@ struct Buf *buf_linedir (struct Buf *buf, const char* filename, int lineno) tsz = strlen("#line \"\"\n") + /* constant parts */ 2 * strlen (filename) + /* filename with possibly all backslashes escaped */ - (int) (1 + log10 (abs (lineno))) + /* line number */ + (size_t) (1 + ceil (log10 (abs (lineno)))) + /* line number */ 1; /* NUL */ t = malloc(tsz); if (!t) @@ -474,7 +474,7 @@ void check_options (void) char *str, *fmt = "#define %s %d\n"; size_t strsz; - strsz = strlen(fmt) + strlen(scname[i]) + (int)(1 + log10(i)) + 2; + strsz = strlen(fmt) + strlen(scname[i]) + (size_t)(1 + ceil (log10(i))) + 2; str = malloc(strsz); if (!str) flexfatal(_("allocation of macro definition failed")); |