diff options
Diffstat (limited to 'tools/bpf/bpftool/prog.c')
-rw-r--r-- | tools/bpf/bpftool/prog.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c index 9785244acc7b..ccee180dfb76 100644 --- a/tools/bpf/bpftool/prog.c +++ b/tools/bpf/bpftool/prog.c | |||
@@ -844,6 +844,7 @@ static int do_load(int argc, char **argv) | |||
844 | } | 844 | } |
845 | NEXT_ARG(); | 845 | NEXT_ARG(); |
846 | } else if (is_prefix(*argv, "map")) { | 846 | } else if (is_prefix(*argv, "map")) { |
847 | void *new_map_replace; | ||
847 | char *endptr, *name; | 848 | char *endptr, *name; |
848 | int fd; | 849 | int fd; |
849 | 850 | ||
@@ -877,12 +878,15 @@ static int do_load(int argc, char **argv) | |||
877 | if (fd < 0) | 878 | if (fd < 0) |
878 | goto err_free_reuse_maps; | 879 | goto err_free_reuse_maps; |
879 | 880 | ||
880 | map_replace = reallocarray(map_replace, old_map_fds + 1, | 881 | new_map_replace = reallocarray(map_replace, |
881 | sizeof(*map_replace)); | 882 | old_map_fds + 1, |
882 | if (!map_replace) { | 883 | sizeof(*map_replace)); |
884 | if (!new_map_replace) { | ||
883 | p_err("mem alloc failed"); | 885 | p_err("mem alloc failed"); |
884 | goto err_free_reuse_maps; | 886 | goto err_free_reuse_maps; |
885 | } | 887 | } |
888 | map_replace = new_map_replace; | ||
889 | |||
886 | map_replace[old_map_fds].idx = idx; | 890 | map_replace[old_map_fds].idx = idx; |
887 | map_replace[old_map_fds].name = name; | 891 | map_replace[old_map_fds].name = name; |
888 | map_replace[old_map_fds].fd = fd; | 892 | map_replace[old_map_fds].fd = fd; |