[augeas-devel] [PATCH] src/fa.c (string_extend): Handle realloc failure

Jim Meyering jim at meyering.net
Thu Apr 24 20:54:22 UTC 2008


Upon failed realloc, this code would segfault.
Here's a patch:

changeset:   410:839286862a8b
tag:         tip
user:        Jim Meyering <meyering at redhat.com>
date:        Thu Apr 24 18:21:43 2008 +0200
files:       src/fa.c
description:
* src/fa.c (string_extend): Handle realloc failure.

diff --git a/src/fa.c b/src/fa.c
--- a/src/fa.c
+++ b/src/fa.c
@@ -1990,10 +1990,13 @@
         || *dst == '\0'
         || str_score(src) + chr_score(c) < str_score(dst)) {
         int slen = strlen(src);
-        dst = realloc(dst, slen + 2);
-        strncpy(dst, src, slen);
-        dst[slen] = c;
-        dst[slen + 1] = '\0';
+        char *new_dst = realloc(dst, slen + 2);
+        if (new_dst) {
+            dst = new_dst;
+            strncpy(dst, src, slen);
+            dst[slen] = c;
+            dst[slen + 1] = '\0';
+        }
     }
     return dst;
 }




More information about the augeas-devel mailing list