39 lines
1.0 KiB
Diff
39 lines
1.0 KiB
Diff
|
From c79f09e1f5e8b559b58dacdb00708d995b2e3aa5 Mon Sep 17 00:00:00 2001
|
||
|
From: paulhsia <paulhsia@chromium.org>
|
||
|
Date: Sat, 30 Nov 2019 03:35:30 +0800
|
||
|
Subject: [PATCH 01/30] ucm: Use strncmp to avoid access-out-of-boundary
|
||
|
|
||
|
If the length of the identifier is less than the length of the prefix,
|
||
|
access-out-of-boundary will occur in memcmp().
|
||
|
|
||
|
Signed-off-by: paulhsia <paulhsia@chromium.org>
|
||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||
|
---
|
||
|
src/ucm/main.c | 8 +++++---
|
||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/src/ucm/main.c b/src/ucm/main.c
|
||
|
index b0b6ffb34be5..252e50d9a387 100644
|
||
|
--- a/src/ucm/main.c
|
||
|
+++ b/src/ucm/main.c
|
||
|
@@ -61,11 +61,13 @@ static int check_identifier(const char *identifier, const char *prefix)
|
||
|
{
|
||
|
int len;
|
||
|
|
||
|
- if (strcmp(identifier, prefix) == 0)
|
||
|
- return 1;
|
||
|
len = strlen(prefix);
|
||
|
- if (memcmp(identifier, prefix, len) == 0 && identifier[len] == '/')
|
||
|
+ if (strncmp(identifier, prefix, len) != 0)
|
||
|
+ return 0;
|
||
|
+
|
||
|
+ if (identifier[len] == 0 || identifier[len] == '/')
|
||
|
return 1;
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
2.16.4
|
||
|
|