From: Jaeyoon Jung <[email protected]>

Correct the length to compare in convert2guid() to fix an issue where it
ends up with returning a wrong id that matches partially. Also fix the
length of usr_buf and grp_buf in interpret_table_entry() which are used
as arguments of convert2guid().

Signed-off-by: Jaeyoon Jung <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
(cherry picked from commit ca9d193a21e6b8669c4da1a68cd5e0791bb80a4b)
Signed-off-by: Steve Sakoman <[email protected]>
---
 meta/recipes-devtools/makedevs/makedevs/makedevs.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/meta/recipes-devtools/makedevs/makedevs/makedevs.c 
b/meta/recipes-devtools/makedevs/makedevs/makedevs.c
index 2254b54891..411a669153 100644
--- a/meta/recipes-devtools/makedevs/makedevs/makedevs.c
+++ b/meta/recipes-devtools/makedevs/makedevs/makedevs.c
@@ -202,7 +202,7 @@ static unsigned long convert2guid(char *id_buf, struct 
name_id *search_list)
                // Check for bad user/group name
                node = search_list;
                while (node != NULL) {
-                       if (!strncmp(node->name, id_buf, strlen(id_buf))) {
+                       if (!strncmp(node->name, id_buf, MAX_ID_LEN)) {
                                fprintf(stderr, "WARNING: Bad user/group name 
%s detected\n", id_buf);
                                break;
                        }
@@ -212,7 +212,7 @@ static unsigned long convert2guid(char *id_buf, struct 
name_id *search_list)
        } else {
                node = search_list;
                while (node != NULL) {
-                       if (!strncmp(node->name, id_buf, strlen(id_buf)))
+                       if (!strncmp(node->name, id_buf, MAX_ID_LEN))
                                return node->id;
                        node = node->next;
                }
@@ -362,13 +362,13 @@ static void add_new_fifo(char *name, char *path, unsigned 
long uid,
 static int interpret_table_entry(char *line)
 {
        char *name;
-       char usr_buf[MAX_ID_LEN];
-       char grp_buf[MAX_ID_LEN];
-       char path[4096], type;
+       char usr_buf[MAX_ID_LEN+1];
+       char grp_buf[MAX_ID_LEN+1];
+       char path[PATH_MAX], type;
        unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
        unsigned long start = 0, increment = 1, count = 0;
 
-       if (0 > sscanf(line, "%4095s %c %lo %39s %39s %lu %lu %lu %lu %lu", 
path,
+       if (0 > sscanf(line, "%4095s %c %lo %40s %40s %lu %lu %lu %lu %lu", 
path,
                    &type, &mode, usr_buf, grp_buf, &major, &minor, &start,
                    &increment, &count))
        {
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#205935): 
https://lists.openembedded.org/g/openembedded-core/message/205935
Mute This Topic: https://lists.openembedded.org/mt/109030202/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to