mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
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
1 changed files with 6 additions and 17 deletions
|
@ -1055,17 +1055,6 @@ vcard_emul_replay_insertion_events(void)
|
||||||
/*
|
/*
|
||||||
* Silly little functions to help parsing our argument string
|
* 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
|
static int
|
||||||
count_tokens(const char *str, char token, char token_end)
|
count_tokens(const char *str, char token, char token_end)
|
||||||
{
|
{
|
||||||
|
@ -1184,18 +1173,18 @@ vcard_emul_options(const char *args)
|
||||||
}
|
}
|
||||||
opts->vreader = vreaderOpt;
|
opts->vreader = vreaderOpt;
|
||||||
vreaderOpt = &vreaderOpt[opts->vreader_count];
|
vreaderOpt = &vreaderOpt[opts->vreader_count];
|
||||||
vreaderOpt->name = copy_string(name, name_length);
|
vreaderOpt->name = qemu_strndup(name, name_length);
|
||||||
vreaderOpt->vname = copy_string(vname, vname_length);
|
vreaderOpt->vname = qemu_strndup(vname, vname_length);
|
||||||
vreaderOpt->card_type = type;
|
vreaderOpt->card_type = type;
|
||||||
vreaderOpt->type_params =
|
vreaderOpt->type_params =
|
||||||
copy_string(type_params, type_params_length);
|
qemu_strndup(type_params, type_params_length);
|
||||||
count = count_tokens(args, ',', ')') + 1;
|
count = count_tokens(args, ',', ')') + 1;
|
||||||
vreaderOpt->cert_count = count;
|
vreaderOpt->cert_count = count;
|
||||||
vreaderOpt->cert_name = (char **)qemu_malloc(count*sizeof(char *));
|
vreaderOpt->cert_name = (char **)qemu_malloc(count*sizeof(char *));
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
const char *cert = args;
|
const char *cert = args;
|
||||||
args = strpbrk(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);
|
args = strip(args+1);
|
||||||
}
|
}
|
||||||
if (*args == ')') {
|
if (*args == ')') {
|
||||||
|
@ -1222,7 +1211,7 @@ vcard_emul_options(const char *args)
|
||||||
args = strip(args+10);
|
args = strip(args+10);
|
||||||
params = args;
|
params = args;
|
||||||
args = find_blank(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" */
|
/* db="/data/base/path" */
|
||||||
} else if (strncmp(args, "db=", 3) == 0) {
|
} else if (strncmp(args, "db=", 3) == 0) {
|
||||||
const char *db;
|
const char *db;
|
||||||
|
@ -1233,7 +1222,7 @@ vcard_emul_options(const char *args)
|
||||||
args++;
|
args++;
|
||||||
db = args;
|
db = args;
|
||||||
args = strpbrk(args, "\"\n");
|
args = strpbrk(args, "\"\n");
|
||||||
opts->nss_db = copy_string(db, args-db);
|
opts->nss_db = qemu_strndup(db, args-db);
|
||||||
if (*args != 0) {
|
if (*args != 0) {
|
||||||
args++;
|
args++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue