laforge submitted this change.

View Change

Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved
bankd: csv: fail on invalid csv lines

Instead of ignoring invalid regex and non-existent
regex for reader.

Change-Id: If10889b43c99adb99d0b7dcdb4287952c3a93d69
---
M src/bankd/bankd_pcsc.c
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/bankd/bankd_pcsc.c b/src/bankd/bankd_pcsc.c
index 1804d01..1eb7dba 100644
--- a/src/bankd/bankd_pcsc.c
+++ b/src/bankd/bankd_pcsc.c
@@ -55,6 +55,7 @@
struct bankd *bankd;
enum parser_state_name state;
struct pcsc_slot_name *cur;
+ bool invalid_csv;
};


@@ -62,6 +63,7 @@
{
ps->state = ST_BANK_NR;
ps->cur = NULL;
+ ps->invalid_csv = false;
}

static void cb1(void *s, size_t len, void *data)
@@ -104,6 +106,7 @@
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);
+ ps->invalid_csv = true;
talloc_free(sn);
goto out;
}
@@ -113,8 +116,9 @@
rc = regcomp(&compiled_name, sn->name_regex, REG_EXTENDED);
if (rc != 0) {
char *errmsg = get_regerror(sn, rc, &compiled_name);
- LOGP(DMAIN, LOGL_ERROR, "B%d:%d: Error compiling regex '%s': %s - Ignoring\n",
+ LOGP(DMAIN, LOGL_ERROR, "B%d:%d: Error compiling regex '%s': %s\n",
sn->slot.bank_id, sn->slot.slot_nr, sn->name_regex, errmsg);
+ ps->invalid_csv = true;
talloc_free(errmsg);
talloc_free(sn);
} else {
@@ -162,6 +166,11 @@
fclose(fp);
csv_free(&p);

+ if (ps.invalid_csv) {
+ LOGP(DMAIN, LOGL_FATAL, "Error parsing bankd PC/SC CSV.\n");
+ return -1;
+ }
+
return 0;
}


To view, visit change 42201. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-remsim
Gerrit-Branch: master
Gerrit-Change-Id: If10889b43c99adb99d0b7dcdb4287952c3a93d69
Gerrit-Change-Number: 42201
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis@fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>