diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2017-07-27 16:07:50 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2017-07-27 16:07:50 -0300 |
commit | 09e241fb1271021e3615512debd3136891547562 (patch) | |
tree | 8245b6084607a34185cfa7d3d45f5228937020f1 /XAlloc.c | |
parent | 3975e9ce5cba0e3972b2ddab28c198e000441501 (diff) |
Security review: check results of snprintf.
Calls marked with xSnprintf shouldn't fail.
Abort program cleanly if any of them does.
Diffstat (limited to 'XAlloc.c')
-rw-r--r-- | XAlloc.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -5,11 +5,11 @@ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif -#include <err.h> #include <stdlib.h> #include <string.h> /*{ +#include <err.h> #include <assert.h> #include <stdlib.h> }*/ @@ -44,6 +44,8 @@ void* xRealloc(void* ptr, size_t size) { return data; } +#define xSnprintf(fmt, len, ...) do { int _l=len; int _n=snprintf(fmt, _l, __VA_ARGS__); if (!(_n > -1 && _n < _l)) { curs_set(1); endwin(); err(1, NULL); } } while(0) + #undef xStrdup #undef xStrdup_ #ifdef NDEBUG |