From 9855acef2ab1c22addf0bcf426f92d2bf28281db Mon Sep 17 00:00:00 2001 From: Luiz Otavio O Souza Date: Fri, 30 Jan 2015 14:09:07 +0000 Subject: [PATCH] Do not leak the OFW memory when the result does not satisfy our alignment requirement. While here, fix style(9) issues. --- sys/dev/ofw/openfirm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/dev/ofw/openfirm.c b/sys/dev/ofw/openfirm.c index 5bcf3d1a69d..7da5e584e24 100644 --- a/sys/dev/ofw/openfirm.c +++ b/sys/dev/ofw/openfirm.c @@ -459,11 +459,16 @@ OF_getencprop_alloc(phandle_t package, const char *name, int elsz, void **buf) int i; retval = OF_getprop_alloc(package, name, elsz, buf); - if (retval == -1 || retval*elsz % 4 != 0) + if (retval == -1) return (-1); + if (retval * elsz % 4 != 0) { + free(*buf, M_OFWPROP); + *buf = NULL; + return (-1); + } cell = *buf; - for (i = 0; i < retval*elsz/4; i++) + for (i = 0; i < retval * elsz / 4; i++) cell[i] = be32toh(cell[i]); return (retval);