diff options
author | Gustavo Sverzut Barbieri <barbieri@profusion.mobi> | 2011-12-19 17:42:34 -0200 |
---|---|---|
committer | Gustavo Sverzut Barbieri <barbieri@profusion.mobi> | 2011-12-19 18:32:58 -0200 |
commit | 47a0ef601dc70c88b9008e35a688c900e4ebcfd4 (patch) | |
tree | fe28bf5447060a933f1466bf32a14ee942c4334a /libkmod/libkmod-elf.c | |
parent | 515ec7960bf22c52e9e5d27c23a5dadad785a9da (diff) | |
download | kmod-47a0ef601dc70c88b9008e35a688c900e4ebcfd4.tar.gz |
elf: do not output empty strings.
Diffstat (limited to 'libkmod/libkmod-elf.c')
-rw-r--r-- | libkmod/libkmod-elf.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/libkmod/libkmod-elf.c b/libkmod/libkmod-elf.c index 0cb12ed..85395dc 100644 --- a/libkmod/libkmod-elf.c +++ b/libkmod/libkmod-elf.c @@ -418,9 +418,16 @@ int kmod_elf_get_strings(const struct kmod_elf *elf, const char *section, char * if (size <= 1) return 0; + last = 0; for (i = 0, count = 0; i < size; i++) { - if (strings[i] == '\0') + if (strings[i] == '\0') { + if (last == i) { + last = i + 1; + continue; + } count++; + last = i + 1; + } } if (strings[i - 1] != '\0') count++; @@ -434,6 +441,10 @@ int kmod_elf_get_strings(const struct kmod_elf *elf, const char *section, char * for (i = 0, count = 0; i < size; i++) { if (strings[i] == '\0') { size_t slen = i - last; + if (last == i) { + last = i + 1; + continue; + } a[count] = itr; memcpy(itr, strings + last, slen); itr[slen] = '\0'; |