kconfig: add xrealloc() helper
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 8 Feb 2018 16:19:07 +0000 (01:19 +0900)
committerChristian Lamparter <chunkeey@gmail.com>
Sun, 10 Feb 2019 20:59:05 +0000 (21:59 +0100)
We already have xmalloc(), xcalloc().  Add xrealloc() as well
to save tedious error handling.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
config/confdata.c
config/lkc.h
config/symbol.c
config/util.c
config/zconf.l

index 2e030b4c736a2876f9a8499a5bd5f0b3939487e4..3a0fb60bada4fdb2b05ac22528f857faaf520f51 100644 (file)
@@ -201,7 +201,7 @@ static int add_byte(int c, char **lineptr, size_t slen, size_t *n)
        if (new_size > *n) {
                new_size += LINE_GROWTH - 1;
                new_size *= 2;
-               nline = realloc(*lineptr, new_size);
+               nline = xrealloc(*lineptr, new_size);
                if (!nline)
                        return -1;
 
index 16cb62b92650db6373e808b6e94f6dda076d6dff..4e23febbe4b2836451ab91327c634b268555bc53 100644 (file)
@@ -114,6 +114,7 @@ struct file *file_lookup(const char *name);
 int file_write_dep(const char *name);
 void *xmalloc(size_t size);
 void *xcalloc(size_t nmemb, size_t size);
+void *xrealloc(void *p, size_t size);
 
 struct gstr {
        size_t len;
index c4409ee7fee20215928cb70222c62e48f02fadd8..60a76f958f334e2a52bc38e3dbb7a87454a8b023 100644 (file)
@@ -936,7 +936,7 @@ const char *sym_expand_string_value(const char *in)
                newlen = strlen(res) + strlen(symval) + strlen(src) + 1;
                if (newlen > reslen) {
                        reslen = newlen;
-                       res = realloc(res, reslen);
+                       res = xrealloc(res, reslen);
                }
 
                strcat(res, symval);
index 0e76042473ccd3633aa0870da3cce23e0b1788c6..138894ef49ea18545468de9b1021c58505d36454 100644 (file)
@@ -104,7 +104,7 @@ void str_append(struct gstr *gs, const char *s)
        if (s) {
                l = strlen(gs->s) + strlen(s) + 1;
                if (l > gs->len) {
-                       gs->s   = realloc(gs->s, l);
+                       gs->s = xrealloc(gs->s, l);
                        gs->len = l;
                }
                strcat(gs->s, s);
@@ -145,3 +145,12 @@ void *xcalloc(size_t nmemb, size_t size)
        fprintf(stderr, "Out of memory.\n");
        exit(1);
 }
+
+void *xrealloc(void *p, size_t size)
+{
+       p = realloc(p, size);
+       if (p)
+               return p;
+       fprintf(stderr, "Out of memory.\n");
+       exit(1);
+}
index 5d9b060e88f7d2932de473840d333b147e9389a2..7578853e7238c0401e546b2cfc80b0bd59916f1e 100644 (file)
@@ -52,7 +52,7 @@ static void append_string(const char *str, int size)
        if (new_size > text_asize) {
                new_size += START_STRSIZE - 1;
                new_size &= -START_STRSIZE;
-               text = realloc(text, new_size);
+               text = xrealloc(text, new_size);
                text_asize = new_size;
        }
        memcpy(text + text_size, str, size);