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;