aboutsummaryrefslogtreecommitdiffstats
path: root/tools/card-call-scd.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/card-call-scd.c')
-rw-r--r--tools/card-call-scd.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/tools/card-call-scd.c b/tools/card-call-scd.c
index bcf630a28..c6ae5edd4 100644
--- a/tools/card-call-scd.c
+++ b/tools/card-call-scd.c
@@ -139,6 +139,7 @@ release_card_info (card_info_t info)
xfree (info->reader); info->reader = NULL;
xfree (info->cardtype); info->cardtype = NULL;
+ xfree (info->manufacturer_name); info->manufacturer_name = NULL;
xfree (info->serialno); info->serialno = NULL;
xfree (info->dispserialno); info->dispserialno = NULL;
xfree (info->apptypestr); info->apptypestr = NULL;
@@ -648,7 +649,7 @@ learn_status_cb (void *opaque, const char *line)
const char *keyword = line;
int keywordlen;
char *line_buffer = NULL; /* In case we need a copy. */
- char *pline;
+ char *pline, *endp;
key_info_t kinfo;
const char *keyref;
int i;
@@ -1012,6 +1013,16 @@ learn_status_cb (void *opaque, const char *line)
xfree (parm->private_do[no]);
parm->private_do[no] = unescape_status_string (line);
}
+ else if (!memcmp (keyword, "MANUFACTURER", 12))
+ {
+ xfree (parm->manufacturer_name);
+ parm->manufacturer_name = NULL;
+ parm->manufacturer_id = strtoul (line, &endp, 0);
+ while (endp && spacep (endp))
+ endp++;
+ if (endp && *endp)
+ parm->manufacturer_name = xstrdup (endp);
+ }
break;
case 13: