mirror of https://gitee.com/openkylin/qemu.git
libcacard: replace copy_string with strndup
copy_string reimplements strndup, this commit removes it and replaces all copy_string uses with strndup. Signed-off-by: Christophe Fergeau <cfergeau@redhat.com> Reviewed-by: Alon Levy <alevy@redhat.com>
This commit is contained in:
parent
d246b3cfd5
commit
2b56cb87e4
|
@ -1055,17 +1055,6 @@ vcard_emul_replay_insertion_events(void)
|
|||
/*
|
||||
* Silly little functions to help parsing our argument string
|
||||
*/
|
||||
static char *
|
||||
copy_string(const char *str, int str_len)
|
||||
{
|
||||
char *new_str;
|
||||
|
||||
new_str = qemu_malloc(str_len+1);
|
||||
memcpy(new_str, str, str_len);
|
||||
new_str[str_len] = 0;
|
||||
return new_str;
|
||||
}
|
||||
|
||||
static int
|
||||
count_tokens(const char *str, char token, char token_end)
|
||||
{
|
||||
|
@ -1184,18 +1173,18 @@ vcard_emul_options(const char *args)
|
|||
}
|
||||
opts->vreader = vreaderOpt;
|
||||
vreaderOpt = &vreaderOpt[opts->vreader_count];
|
||||
vreaderOpt->name = copy_string(name, name_length);
|
||||
vreaderOpt->vname = copy_string(vname, vname_length);
|
||||
vreaderOpt->name = qemu_strndup(name, name_length);
|
||||
vreaderOpt->vname = qemu_strndup(vname, vname_length);
|
||||
vreaderOpt->card_type = type;
|
||||
vreaderOpt->type_params =
|
||||
copy_string(type_params, type_params_length);
|
||||
qemu_strndup(type_params, type_params_length);
|
||||
count = count_tokens(args, ',', ')') + 1;
|
||||
vreaderOpt->cert_count = count;
|
||||
vreaderOpt->cert_name = (char **)qemu_malloc(count*sizeof(char *));
|
||||
for (i = 0; i < count; i++) {
|
||||
const char *cert = args;
|
||||
args = strpbrk(args, ",)");
|
||||
vreaderOpt->cert_name[i] = copy_string(cert, args - cert);
|
||||
vreaderOpt->cert_name[i] = qemu_strndup(cert, args - cert);
|
||||
args = strip(args+1);
|
||||
}
|
||||
if (*args == ')') {
|
||||
|
@ -1222,7 +1211,7 @@ vcard_emul_options(const char *args)
|
|||
args = strip(args+10);
|
||||
params = args;
|
||||
args = find_blank(args);
|
||||
opts->hw_type_params = copy_string(params, args-params);
|
||||
opts->hw_type_params = qemu_strndup(params, args-params);
|
||||
/* db="/data/base/path" */
|
||||
} else if (strncmp(args, "db=", 3) == 0) {
|
||||
const char *db;
|
||||
|
@ -1233,7 +1222,7 @@ vcard_emul_options(const char *args)
|
|||
args++;
|
||||
db = args;
|
||||
args = strpbrk(args, "\"\n");
|
||||
opts->nss_db = copy_string(db, args-db);
|
||||
opts->nss_db = qemu_strndup(db, args-db);
|
||||
if (*args != 0) {
|
||||
args++;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue