]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
power: test_power: correctly handle empty writes
authorSasha Levin <sasha.levin@oracle.com>
Tue, 22 Dec 2015 17:43:36 +0000 (12:43 -0500)
committerLuis Henriques <luis.henriques@canonical.com>
Tue, 2 Feb 2016 19:47:55 +0000 (19:47 +0000)
commit 6b9140f39c2aaf76791197fbab0839c0e4af56e8 upstream.

Writing 0 length data into test_power makes it access an invalid array
location and kill the system.

Fixes: f17ef9b2d ("power: Make test_power driver more dynamic.")
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
drivers/power/test_power.c

index 0152f35dca5c71c8f4bdddd617606e544831ff69..b47bd17fa723e192f0964c9640e5989baf237612 100644 (file)
@@ -275,6 +275,8 @@ static int map_get_value(struct battery_property_map *map, const char *key,
        buf[MAX_KEYLENGTH-1] = '\0';
 
        cr = strnlen(buf, MAX_KEYLENGTH) - 1;
+       if (cr < 0)
+               return def_val;
        if (buf[cr] == '\n')
                buf[cr] = '\0';