From ca18b7108d06d698cfb2b816c8f3786972a4ddc1 Mon Sep 17 00:00:00 2001 From: Dan Kenigsberg Date: Thu, 21 Jan 2010 15:28:56 +0100 Subject: [PATCH] Allow surrounding whitespace in uuid * src/util/uuid.c: extend virUUIDParse to allow leading and trailing spaces in UUIDs --- src/util/uuid.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/util/uuid.c b/src/util/uuid.c index 20ed1189fb..56e53a34fe 100644 --- a/src/util/uuid.c +++ b/src/util/uuid.c @@ -146,9 +146,13 @@ virUUIDParse(const char *uuidstr, unsigned char *uuid) { /* * do a liberal scan allowing '-' and ' ' anywhere between character - * pairs as long as there is 32 of them in the end. + * pairs, and surrounding whitespace, as long as there are exactly + * 32 hexadecimal digits the end. */ cur = uuidstr; + while (c_isspace(*cur)) + cur++; + for (i = 0;i < VIR_UUID_BUFLEN;) { uuid[i] = 0; if (*cur == 0) @@ -171,6 +175,12 @@ virUUIDParse(const char *uuidstr, unsigned char *uuid) { cur++; } + while (*cur) { + if (!c_isspace(*cur)) + goto error; + cur++; + } + return 0; error: