commit:     68b9b0bc2a11d144870d14fcb8ac24e6c9c63354
Author:     William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
AuthorDate: Sat Feb 10 20:09:22 2018 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Sat Feb 10 20:49:40 2018 +0000
URL:        https://gitweb.gentoo.org/proj/openrc.git/commit/?id=68b9b0bc

xasprintf: exit if return value of vsnprintf is invalid

 src/includes/helpers.h | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/includes/helpers.h b/src/includes/helpers.h
index 3657ee74..6e0ad19f 100644
--- a/src/includes/helpers.h
+++ b/src/includes/helpers.h
@@ -158,15 +158,12 @@ _unused static int xasprintf(char **strp, const char 
*fmt, ...)
                va_start(ap, fmt);
                len = vsnprintf(ret, len + 1, fmt, ap);
                va_end(ap);
-               if (len >= memlen) {
-                       /* Give up! */
-                       free(ret);
-                       return -1;
-               }
        }
-       if (len < 0) {
+       if (len < 0 || len >= memlen) {
+               /* Give up! */
+               fprintf(stderr, "xasprintf: unable to format a buffer\n");
                free(ret);
-               return -1;
+               exit(1);
        }
        *strp = ret;
        return len;

Reply via email to