New upstream version 16.11.5
[deb_dpdk.git] / buildtools / pmdinfogen / pmdinfogen.c
index 5bf08ce..79bb343 100644 (file)
@@ -158,7 +158,8 @@ static int parse_elf(struct elf_info *info, const char *filename)
                 * There are more than 64k sections,
                 * read count from .sh_size.
                 */
-               info->num_sections = TO_NATIVE(endian, 32, sechdrs[0].sh_size);
+               info->num_sections =
+                       TO_NATIVE(endian, ADDR_SIZE, sechdrs[0].sh_size);
        } else {
                info->num_sections = hdr->e_shnum;
        }
@@ -181,7 +182,7 @@ static int parse_elf(struct elf_info *info, const char *filename)
                sechdrs[i].sh_offset    =
                        TO_NATIVE(endian, ADDR_SIZE, sechdrs[i].sh_offset);
                sechdrs[i].sh_size      =
-                       TO_NATIVE(endian, 32, sechdrs[i].sh_size);
+                       TO_NATIVE(endian, ADDR_SIZE, sechdrs[i].sh_size);
                sechdrs[i].sh_link      =
                        TO_NATIVE(endian, 32, sechdrs[i].sh_link);
                sechdrs[i].sh_info      =
@@ -326,6 +327,10 @@ static int locate_pmd_entries(struct elf_info *info)
 
        do {
                new = calloc(sizeof(struct pmd_driver), 1);
+               if (new == NULL) {
+                       fprintf(stderr, "Failed to calloc memory\n");
+                       return -1;
+               }
                new->name_sym = find_sym_in_symtab(info, "this_pmd_name", last);
                last = new->name_sym;
                if (!new->name_sym)
@@ -407,7 +412,8 @@ int main(int argc, char **argv)
        }
        parse_elf(&info, argv[1]);
 
-       locate_pmd_entries(&info);
+       if (locate_pmd_entries(&info) < 0)
+               exit(1);
 
        if (info.drivers) {
                output_pmd_info_string(&info, argv[2]);