]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
mapfile.c: Fix STRING_OVERFLOW issue
authorAnna Sztukowska <anna.sztukowska@intel.com>
Wed, 3 Jul 2024 12:11:58 +0000 (14:11 +0200)
committerMariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Wed, 10 Jul 2024 14:14:12 +0000 (16:14 +0200)
Fix STRING_OVERFLOW issue found by SAST analysis in map_add() and
map_update() in mapfile.c.

Signed-off-by: Anna Sztukowska <anna.sztukowska@intel.com>
mapfile.c

index f1f3ee2cdc77bbe030a269c88d9a83e73b67c425..ea9837acd0c121cce82bbdcf5bce5f1096b54818 100644 (file)
--- a/mapfile.c
+++ b/mapfile.c
@@ -165,8 +165,8 @@ void map_add(struct map_ent **melp,
 {
        struct map_ent *me = xmalloc(sizeof(*me));
 
-       strcpy(me->devnm, devnm);
-       strcpy(me->metadata, metadata);
+       snprintf(me->devnm, sizeof(me->devnm), "%s", devnm);
+       snprintf(me->metadata, sizeof(me->metadata), "%s", metadata);
        memcpy(me->uuid, uuid, 16);
        me->path = path ? xstrdup(path) : NULL;
        me->next = *melp;
@@ -227,7 +227,7 @@ int map_update(struct map_ent **mpp, char *devnm, char *metadata,
 
        for (mp = map ; mp ; mp=mp->next)
                if (strcmp(mp->devnm, devnm) == 0) {
-                       strcpy(mp->metadata, metadata);
+                       snprintf(mp->metadata, sizeof(mp->metadata), "%s", metadata);
                        memcpy(mp->uuid, uuid, 16);
                        free(mp->path);
                        mp->path = path ? xstrdup(path) : NULL;