From: Zbigniew Jędrzejewski-Szmek Date: Sat, 4 Oct 2014 00:57:30 +0000 (-0400) Subject: sd-id128: do stricter checking of random boot id X-Git-Tag: v217~321 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=cef3566998fcae6936d781e678c309950a8a5787 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. --- diff --git a/src/libsystemd/sd-id128/sd-id128.c b/src/libsystemd/sd-id128/sd-id128.c index a1e44e6d1..233ffa070 100644 --- a/src/libsystemd/sd-id128/sd-id128.c +++ b/src/libsystemd/sd-id128/sd-id128.c @@ -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]);