From 96b13f0aaac6f19832f6eb069196b6a3cc85aa5b Mon Sep 17 00:00:00 2001 From: pfg Date: Wed, 14 Sep 2016 16:34:52 +0000 Subject: [PATCH] fifolog(1): invert order of calloc(3) arguments. The second argment to calloc(3) should be the size, make it so. While here be a little bit more cautious in fifolog_reader_open() to protect in the unlikely event of an overflowed allocation. MFC after: 3 weeks --- usr.sbin/fifolog/lib/fifolog_create.c | 2 +- usr.sbin/fifolog/lib/fifolog_reader.c | 4 ++-- usr.sbin/fifolog/lib/fifolog_write_poll.c | 2 +- usr.sbin/fifolog/lib/miniobj.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/usr.sbin/fifolog/lib/fifolog_create.c b/usr.sbin/fifolog/lib/fifolog_create.c index 4a7c3338ad37..17f38c96c3b0 100644 --- a/usr.sbin/fifolog/lib/fifolog_create.c +++ b/usr.sbin/fifolog/lib/fifolog_create.c @@ -97,7 +97,7 @@ fifolog_create(const char *fn, off_t size, ssize_t recsize) if (S_ISREG(st.st_mode) && ftruncate(fd, size) < 0) return ("Could not ftrunc"); - buf = calloc(recsize, 1); + buf = calloc(1, recsize); if (buf == NULL) return ("Could not malloc"); diff --git a/usr.sbin/fifolog/lib/fifolog_reader.c b/usr.sbin/fifolog/lib/fifolog_reader.c index d57d12c948f1..e771f88ce4c0 100644 --- a/usr.sbin/fifolog/lib/fifolog_reader.c +++ b/usr.sbin/fifolog/lib/fifolog_reader.c @@ -67,10 +67,10 @@ fifolog_reader_open(const char *fname) if (retval != NULL) err(1, "%s", retval); - fr->olen = fr->ff->recsize * 16; - fr->obuf = calloc(fr->olen, 1); + fr->obuf = calloc(16, fr->ff->recsize); if (fr->obuf == NULL) err(1, "Cannot malloc"); + fr->olen = fr->ff->recsize * 16; i = inflateInit(fr->ff->zs); assert(i == Z_OK); diff --git a/usr.sbin/fifolog/lib/fifolog_write_poll.c b/usr.sbin/fifolog/lib/fifolog_write_poll.c index 9ebd5beee23d..885ba7f2d5e3 100644 --- a/usr.sbin/fifolog/lib/fifolog_write_poll.c +++ b/usr.sbin/fifolog/lib/fifolog_write_poll.c @@ -45,7 +45,7 @@ static int fifolog_write_gzip(struct fifolog_writer *f, time_t now); #define ALLOC(ptr, size) do { \ - (*(ptr)) = calloc(size, 1); \ + (*(ptr)) = calloc(1, size); \ assert(*(ptr) != NULL); \ } while (0) diff --git a/usr.sbin/fifolog/lib/miniobj.h b/usr.sbin/fifolog/lib/miniobj.h index dd79be1fabdb..ee94a1047671 100644 --- a/usr.sbin/fifolog/lib/miniobj.h +++ b/usr.sbin/fifolog/lib/miniobj.h @@ -28,7 +28,7 @@ #define ALLOC_OBJ(to, type_magic) \ do { \ - (to) = calloc(sizeof *(to), 1); \ + (to) = calloc(1, sizeof *(to)); \ if ((to) != NULL) \ (to)->magic = (type_magic); \ } while (0)