laforge submitted this change.
bankd: csv: fix crash on invalid lines
When no valid csv line is given (e.g. without any commas),
bankd will crash when trying to compile a regex with NULL.
Change-Id: Id6059c7dd4a119ffb1658a6cd7345a40bef3a69f
---
M src/bankd/bankd_pcsc.c
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/bankd/bankd_pcsc.c b/src/bankd/bankd_pcsc.c
index f9651f3..1804d01 100644
--- a/src/bankd/bankd_pcsc.c
+++ b/src/bankd/bankd_pcsc.c
@@ -101,13 +101,20 @@
LOGP(DMAIN, LOGL_INFO, "PC/SC slot name: %u/%u -> regex '%s'\n",
sn->slot.bank_id, sn->slot.slot_nr, sn->name_regex);
+ if (!sn->name_regex) {
+ LOGP(DMAIN, LOGL_ERROR, "B%d:%d: No reader name given. Maybe invalid csv.\n",
+ sn->slot.bank_id, sn->slot.slot_nr);
+ talloc_free(sn);
+ goto out;
+ }
+
memset(&compiled_name, 0, sizeof(compiled_name));
rc = regcomp(&compiled_name, sn->name_regex, REG_EXTENDED);
if (rc != 0) {
char *errmsg = get_regerror(sn, rc, &compiled_name);
- LOGP(DMAIN, LOGL_ERROR, "Error compiling regex '%s': %s - Ignoring\n",
- sn->name_regex, errmsg);
+ LOGP(DMAIN, LOGL_ERROR, "B%d:%d: Error compiling regex '%s': %s - Ignoring\n",
+ sn->slot.bank_id, sn->slot.slot_nr, sn->name_regex, errmsg);
talloc_free(errmsg);
talloc_free(sn);
} else {
@@ -115,6 +122,7 @@
}
regfree(&compiled_name);
+out:
ps->state = ST_BANK_NR;
ps->cur = NULL;
}
To view, visit change 42200. To unsubscribe, or for help writing mail filters, visit settings.