diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2001-03-29 10:36:05 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2001-03-29 10:36:05 +0000 |
commit | fc61a0c1dfa6a6a6aa3d9975842fccfa9c92f9a9 (patch) | |
tree | 01d00f84e4f3565398b36785e341e5a08bda54de | |
parent | 738e9433b92462a3fda43d434a1fc6e37390ccf2 (diff) | |
download | ldetect-fc61a0c1dfa6a6a6aa3d9975842fccfa9c92f9a9.tar ldetect-fc61a0c1dfa6a6a6aa3d9975842fccfa9c92f9a9.tar.gz ldetect-fc61a0c1dfa6a6a6aa3d9975842fccfa9c92f9a9.tar.bz2 ldetect-fc61a0c1dfa6a6a6aa3d9975842fccfa9c92f9a9.tar.xz ldetect-fc61a0c1dfa6a6a6aa3d9975842fccfa9c92f9a9.zip |
fix some memory leak a few segfaults
-rw-r--r-- | pciusb.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -60,8 +60,8 @@ extern int pciusb_find_modules(struct pciusb_entries entries, const char *fpcius int nb = sscanf(buf, "0x%hx\t0x%hx\t0x%hx\t0x%hx\t%n", &vendor, &device, &subvendor, &subdevice, &offset); if (nb != 4) { nb = sscanf(buf, "0x%hx\t0x%hx\t%n", &vendor, &device, &offset); - if (nb != 2 && buf[0] != '#') { - fprintf(stderr, "%s %d: bad line\n", fpciusbtable, line); + if (nb != 2) { + if (buf[0] != '#') fprintf(stderr, "%s %d: bad line\n", fpciusbtable, line); continue; } } @@ -80,6 +80,7 @@ extern int pciusb_find_modules(struct pciusb_entries entries, const char *fpcius if (q) { q[-1] = 0; q[strlen(q)-2] = 0; + ifree(e->module); ifree(e->text); e->module = strcmp(p, "unknown") ? strdup(p) : NULL; e->text = strdup(q+2); } |