소스 검색

power: test_power: correctly handle empty writes

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>
Sasha Levin 9 년 전
부모
커밋
6b9140f39c
1개의 변경된 파일2개의 추가작업 그리고 0개의 파일을 삭제
  1. 2 0
      drivers/power/test_power.c

+ 2 - 0
drivers/power/test_power.c

@@ -301,6 +301,8 @@ static int map_get_value(struct battery_property_map *map, const char *key,
 	buf[MAX_KEYLENGTH-1] = '\0';
 	buf[MAX_KEYLENGTH-1] = '\0';
 
 
 	cr = strnlen(buf, MAX_KEYLENGTH) - 1;
 	cr = strnlen(buf, MAX_KEYLENGTH) - 1;
+	if (cr < 0)
+		return def_val;
 	if (buf[cr] == '\n')
 	if (buf[cr] == '\n')
 		buf[cr] = '\0';
 		buf[cr] = '\0';