Commit 90d1ecf0 authored by David Kershner's avatar David Kershner Committed by Greg Kroah-Hartman

staging: unisys: visorbus: clean up parser_string_get function

The function parser_string_get was writing its own strnlen function, use
the kernel version instead.
Signed-off-by: default avatarDavid Kershner <david.kershner@unisys.com>
Reviewed-by: default avatarTim Sell <timothy.sell@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3f5a562b
......@@ -641,36 +641,20 @@ static const guid_t *parser_id_get(struct parser_context *ctx)
return &ctx->data.id;
}
static void *parser_string_get(struct parser_context *ctx)
static void *parser_string_get(u8 *pscan, int nscan)
{
u8 *pscan;
unsigned long nscan;
int value_length;
void *value;
int i;
pscan = ctx->curr;
if (!pscan)
return NULL;
nscan = ctx->bytes_remaining;
if (nscan == 0)
return NULL;
for (i = 0, value_length = -1; i < nscan; i++)
if (pscan[i] == '\0') {
value_length = i;
break;
}
/* '\0' was not included in the length */
if (value_length < 0)
value_length = nscan;
value = kmalloc(value_length + 1, GFP_KERNEL);
value_length = strnlen(pscan, nscan);
value = kzalloc(value_length + 1, GFP_KERNEL);
if (!value)
return NULL;
if (value_length > 0)
memcpy(value, pscan, value_length);
((u8 *)(value))[value_length] = '\0';
return value;
}
......@@ -685,7 +669,7 @@ static void *parser_name_get(struct parser_context *ctx)
ctx->curr = (char *)&phdr + phdr->name_offset;
ctx->bytes_remaining = phdr->name_length;
return parser_string_get(ctx);
return parser_string_get(ctx->curr, phdr->name_length);
}
static int visorbus_configure(struct controlvm_message *inmsg,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment