From: James Jones Date: Thu, 20 Apr 2023 14:05:19 +0000 (-0500) Subject: Don't pass NULL buffer to _fr_syserror() (#4963) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8fc620be298a49aea6f3bd5f116cfd781fe52789;p=thirdparty%2Ffreeradius-server.git Don't pass NULL buffer to _fr_syserror() (#4963) The issue turns up if _fr_syserror_buffer() returns NULL. --- diff --git a/src/lib/util/syserror.c b/src/lib/util/syserror.c index d5f2686944a..253b4d36a06 100644 --- a/src/lib/util/syserror.c +++ b/src/lib/util/syserror.c @@ -260,6 +260,7 @@ char const *fr_syserror(int num) * Grab our thread local buffer */ buffer = _fr_syserror_buffer(); + if (!buffer) goto error; p = buffer; end = p + FR_SYSERROR_BUFSIZE; @@ -297,7 +298,7 @@ char const *fr_syserror_simple(int num) * Grab our thread local buffer */ buffer = _fr_syserror_buffer(); - if (_fr_syserror(num, buffer, FR_SYSERROR_BUFSIZE) < 0) return "Failed retrieving error"; + if (!buffer || (_fr_syserror(num, buffer, FR_SYSERROR_BUFSIZE) < 0)) return "Failed retrieving error"; return buffer; }