sd-id128: do stricter checking of random boot id

If we are bothering to check whether the kernel is not feeding us
bad data, we might as well do it properly.

CID #1237692.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-10-03 20:57:30 -04:00
parent f88dc3edeb
commit cef3566998
1 changed files with 5 additions and 2 deletions

View File

@ -183,11 +183,14 @@ _public_ int sd_id128_get_boot(sd_id128_t *ret) {
for (j = 0, p = buf; j < 16; j++) {
int a, b;
if (p >= buf + k)
if (p >= buf + k - 1)
return -EIO;
if (*p == '-')
if (*p == '-') {
p++;
if (p >= buf + k - 1)
return -EIO;
}
a = unhexchar(p[0]);
b = unhexchar(p[1]);