diff options
author | Eike Rathke <erack@redhat.com> | 2013-07-19 16:59:32 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-07-19 17:31:30 +0200 |
commit | 226ae6dfd00b748753804c11690089e4346b5eb2 (patch) | |
tree | d7bbbff9fe279c68af8eb41956accdeb0de210ba /liblangtag | |
parent | 3305fd648f9f17145620954e24ade4d4ea62d60f (diff) |
return NULL instead of abort for C99 vsnprintf()<0
Change-Id: I450c2369fdd2327a0b565d6c111b2d03679bed3f
Diffstat (limited to 'liblangtag')
-rw-r--r-- | liblangtag/liblangtag-0.5.1-vsnprintf.patch | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/liblangtag/liblangtag-0.5.1-vsnprintf.patch b/liblangtag/liblangtag-0.5.1-vsnprintf.patch index 8ca5c6e7b3c4..599c47f9ae52 100644 --- a/liblangtag/liblangtag-0.5.1-vsnprintf.patch +++ b/liblangtag/liblangtag-0.5.1-vsnprintf.patch @@ -1,12 +1,18 @@ -diff -ru langtag.orig/liblangtag/lt-utils.c langtag/liblangtag/lt-utils.c ---- UnpackedTarball/langtag.orig/liblangtag/lt-utils.c 2013-04-22 10:06:57.000000000 +0200 -+++ UnpackedTarball/langtag/liblangtag/lt-utils.c 2013-04-26 17:58:39.817351779 +0200 -@@ -168,6 +168,8 @@ - va_copy(ap, args); - - size = vsnprintf(&c, 1, format, ap) + 1; -+ if (size == 0) // -1 + 1 -+ abort(); +diff -ru UnpackedTarball/orig.langtag/liblangtag/lt-utils.c UnpackedTarball/langtag/liblangtag/lt-utils.c +--- UnpackedTarball/orig.langtag/liblangtag/lt-utils.c 2013-07-19 16:47:20.310734230 +0200 ++++ UnpackedTarball/langtag/liblangtag/lt-utils.c 2013-07-19 16:53:10.839914271 +0200 +@@ -173,9 +173,11 @@ va_end(ap); +- retval = malloc(sizeof (char) * size); +- if (retval) { +- vsprintf(retval, format, args); ++ if (size > 0) { ++ retval = malloc(sizeof (char) * size); ++ if (retval) { ++ vsprintf(retval, format, args); ++ } + } + } LT_STMT_END; + #elif HAVE_VSNPRINTF |