diff options
author | Masahiro Yamada <masahiroy@kernel.org> | 2024-08-12 15:48:52 +0300 |
---|---|---|
committer | Masahiro Yamada <masahiroy@kernel.org> | 2024-09-01 14:34:48 +0300 |
commit | aeaa4283a309520c22a783071f554645943955d8 (patch) | |
tree | 4f61ef553883115c7bd7efd4da8bd124e02a62c9 /scripts | |
parent | 4c2598e3b62102d5ea7f618e13d996b069cde27d (diff) | |
download | linux-aeaa4283a309520c22a783071f554645943955d8.tar.xz |
kallsyms: use xmalloc() and xrealloc()
When malloc() or realloc() fails, there is not much userspace programs
can do. xmalloc() and xrealloc() are useful to bail out on a memory
allocation failure.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/kallsyms.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 123dab0572f8..c70458e68ece 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -27,6 +27,8 @@ #include <ctype.h> #include <limits.h> +#include <xalloc.h> + #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) #define KSYM_NAME_LEN 512 @@ -168,12 +170,7 @@ static struct sym_entry *read_symbol(FILE *in, char **buf, size_t *buf_len) * compressed together */ len++; - sym = malloc(sizeof(*sym) + len + 1); - if (!sym) { - fprintf(stderr, "kallsyms failure: " - "unable to allocate required amount of memory\n"); - exit(EXIT_FAILURE); - } + sym = xmalloc(sizeof(*sym) + len + 1); sym->addr = addr; sym->len = len; sym->sym[0] = type; @@ -278,12 +275,7 @@ static void read_map(const char *in) if (table_cnt >= table_size) { table_size += 10000; - table = realloc(table, sizeof(*table) * table_size); - if (!table) { - fprintf(stderr, "out of memory\n"); - fclose(fp); - exit (1); - } + table = xrealloc(table, sizeof(*table) * table_size); } table[table_cnt++] = sym; @@ -391,12 +383,7 @@ static void write_src(void) /* table of offset markers, that give the offset in the compressed stream * every 256 symbols */ markers_cnt = (table_cnt + 255) / 256; - markers = malloc(sizeof(*markers) * markers_cnt); - if (!markers) { - fprintf(stderr, "kallsyms failure: " - "unable to allocate required memory\n"); - exit(EXIT_FAILURE); - } + markers = xmalloc(sizeof(*markers) * markers_cnt); output_label("kallsyms_names"); off = 0; |