elf_parser: add warnings flags 81/110481/2
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Tue, 15 Nov 2016 12:36:48 +0000 (15:36 +0300)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Fri, 20 Jan 2017 07:29:07 +0000 (10:29 +0300)
and fix build

Change-Id: I507e084f18b2d36c9eec71fec7e8956fce9715db
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
elf_parsing/Makefile
elf_parsing/lib_parse_elf.c
elf_parsing/parse_elf.c

index cb92e7b..0571f85 100644 (file)
@@ -2,7 +2,9 @@ PARSE_ELF_LIB_TARGET=libparserelf.so
 PARSE_ELF_BIN_TARGET=parse_elf
 PARSE_ELF_HEADER=parse_elf.h
 
+WARN_CFLAGS= -Werror -Wall -Wextra
 CFLAGS=-fPIC
+CFLAGS+=$(WARN_CFLAGS)
 
 PARSE_ELF_LIB_SRC=lib_parse_elf.c
 PARSE_ELF_BIN_SRC=parse_elf.c
index 1b48700..a36c348 100644 (file)
@@ -4,6 +4,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <regex.h>
+#include <unistd.h>
 #include <stdbool.h>
 #include <malloc.h>
 #include <search.h>
@@ -141,20 +142,6 @@ static const Elf_Shdr *get_section_by_name(const void *elf, const char* name)
        return NULL;
 }
 
-static const Elf_Shdr *get_section_by_type(const void *elf, Elf_Word sh_type)
-{
-       const Elf_Ehdr *elf_header = elf;
-       const Elf_Shdr *section_table = elf + elf_header->e_shoff;
-       int i;
-
-       for (i = 0; i != elf_header->e_shnum; ++i) {
-               const Elf_Shdr *entry = section_table + i;
-               if (entry->sh_type == sh_type)
-                       return entry;
-       }
-       return NULL;
-}
-
 static void __do_free_sym_entry(struct sym_table_entry *entry)
 {
        if (entry == NULL)
@@ -216,8 +203,7 @@ get_sym_addr(const void *elf, const char* table_name, const char *sym_names[],
        const char *name;
        Elf_Addr addr;
        unsigned int type;
-       int entries_num;
-       int i, j;
+       size_t i, j, entries_num;
        struct sym_table_entry *first = NULL, *elem = NULL, *prev = NULL;
        regex_t regex;
 
@@ -301,8 +287,7 @@ get_got_plt_addrs(const void *elf, const char* entry_names[], Elf_Addr addrs[],
        const Elf_Shdr *shdr;
        const Elf_Sym *sym_table;
        const char* name;
-       int plt_table_size;
-       int i, j;
+       size_t i, j, plt_table_size;
        int ret = 0;
        regex_t regex;
 
@@ -368,7 +353,7 @@ static int __do_get_plt_addrs(const void *elf, const char* func_names[], Elf_Add
 
        int base = got_plt_shdr->sh_addr - got_plt_shdr->sh_offset;
 
-       int j;
+       size_t j;
        for (j = 0; j < n; j++) {
                if (addrs[j])
                        addrs[j] = *(Elf_Addr *)(elf + addrs[j] - base) - 6;
@@ -542,7 +527,7 @@ void free_sym_entry(struct sym_table_entry *entry)
 
 const char *get_str_error(int err)
 {
-       char *str;
+       const char *str;
 
        switch (err) {
        case ELF_PARSE_SUCCESS:
index b8a469b..03addc8 100644 (file)
@@ -9,11 +9,8 @@
 
 unsigned long get_addr_by_name(struct sym_table_entry *entry, const char *name)
 {
-       struct sym_table_entry *first;
        size_t len_one, len_two, len;
 
-       first = entry;
-
        do {
                len_one = strlen(entry->name);
                len_two = strlen(name);
@@ -44,14 +41,9 @@ static const char *name_by_type(unsigned int type)
 
 void print_sym_table(struct sym_table_entry *entry,int fast)
 {
-       struct sym_table_entry *first;
-       int i;
-
        if (!entry)
                return;
 
-       first = entry;
-
        do {
                if (!(fast && entry->addr == 0))
                        printf("%08x %s %s\n", entry->addr, name_by_type(entry->type), entry->name);
@@ -62,14 +54,13 @@ void print_sym_table(struct sym_table_entry *entry,int fast)
 void print_sym_addrs(struct sym_table_entry *entry, const char **names,
                     size_t len)
 {
-       int i;
-       int addr;
+       size_t i;
 
        if (!entry)
                return;
 
        for (i = 0; i < len; i++)
-               printf("%08x\n", get_addr_by_name(entry, names[i]));
+               printf("%08lx\n", get_addr_by_name(entry, names[i]));
 }
 
 void clean_syms(struct sym_table_entry *entry)
@@ -110,8 +101,7 @@ int parse_sa(const char *filename, int fast)
 int main(int argc, char **argv)
 {
        const char *filename = argv[1];
-       size_t entries_num = 0;
-       int i;
+       size_t i, entries_num = 0;
        int ret = 0;
 
        /* TODO fix coding style */