summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2001-03-29 10:36:05 +0000
committerPascal Rigaux <pixel@mandriva.com>2001-03-29 10:36:05 +0000
commitfc61a0c1dfa6a6a6aa3d9975842fccfa9c92f9a9 (patch)
tree01d00f84e4f3565398b36785e341e5a08bda54de
parent738e9433b92462a3fda43d434a1fc6e37390ccf2 (diff)
downloadldetect-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.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/pciusb.c b/pciusb.c
index f2b4729..e5cf391 100644
--- a/pciusb.c
+++ b/pciusb.c
@@ -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);
}