]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dm: ima: avoid extra calls to strlen()
authorDmitry Antipov <dmantipov@yandex.ru>
Thu, 26 Jun 2025 16:07:50 +0000 (19:07 +0300)
committerMikulas Patocka <mpatocka@redhat.com>
Fri, 27 Jun 2025 11:07:17 +0000 (13:07 +0200)
Since 'scnprintf()' returns the number of characters emitted (not
including the trailing '\0'), use that return value instead of the
subsequent calls to 'strlen()' where appropriate. Compile tested only.

Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
drivers/md/dm-ima.c

index b90f34259fbbb8bd67d954e3e1e585db4ab4f3c1..8b50c908c6f439663113dede71f702d9f530df61 100644 (file)
@@ -241,10 +241,11 @@ void dm_ima_measure_on_table_load(struct dm_table *table, unsigned int status_fl
                /*
                 * First retrieve the target metadata.
                 */
-               scnprintf(target_metadata_buf, DM_IMA_TARGET_METADATA_BUF_LEN,
-                         "target_index=%d,target_begin=%llu,target_len=%llu,",
-                         i, ti->begin, ti->len);
-               target_metadata_buf_len = strlen(target_metadata_buf);
+               target_metadata_buf_len =
+                       scnprintf(target_metadata_buf,
+                                 DM_IMA_TARGET_METADATA_BUF_LEN,
+                                 "target_index=%d,target_begin=%llu,target_len=%llu,",
+                                 i, ti->begin, ti->len);
 
                /*
                 * Then retrieve the actual target data.
@@ -448,11 +449,9 @@ void dm_ima_measure_on_device_resume(struct mapped_device *md, bool swap)
                if (r)
                        goto error;
 
-               scnprintf(device_table_data, DM_IMA_DEVICE_BUF_LEN,
-                         "%sname=%s,uuid=%s;device_resume=no_data;",
-                         DM_IMA_VERSION_STR, dev_name, dev_uuid);
-               l = strlen(device_table_data);
-
+               l = scnprintf(device_table_data, DM_IMA_DEVICE_BUF_LEN,
+                             "%sname=%s,uuid=%s;device_resume=no_data;",
+                             DM_IMA_VERSION_STR, dev_name, dev_uuid);
        }
 
        capacity_len = strlen(capacity_str);
@@ -561,10 +560,9 @@ void dm_ima_measure_on_device_remove(struct mapped_device *md, bool remove_all)
                if (dm_ima_alloc_and_copy_name_uuid(md, &dev_name, &dev_uuid, noio))
                        goto error;
 
-               scnprintf(device_table_data, DM_IMA_DEVICE_BUF_LEN,
-                         "%sname=%s,uuid=%s;device_remove=no_data;",
-                         DM_IMA_VERSION_STR, dev_name, dev_uuid);
-               l = strlen(device_table_data);
+               l = scnprintf(device_table_data, DM_IMA_DEVICE_BUF_LEN,
+                             "%sname=%s,uuid=%s;device_remove=no_data;",
+                             DM_IMA_VERSION_STR, dev_name, dev_uuid);
        }
 
        memcpy(device_table_data + l, remove_all_str, remove_all_len);
@@ -647,10 +645,9 @@ void dm_ima_measure_on_table_clear(struct mapped_device *md, bool new_map)
                if (dm_ima_alloc_and_copy_name_uuid(md, &dev_name, &dev_uuid, noio))
                        goto error2;
 
-               scnprintf(device_table_data, DM_IMA_DEVICE_BUF_LEN,
-                         "%sname=%s,uuid=%s;table_clear=no_data;",
-                          DM_IMA_VERSION_STR, dev_name, dev_uuid);
-               l = strlen(device_table_data);
+               l = scnprintf(device_table_data, DM_IMA_DEVICE_BUF_LEN,
+                             "%sname=%s,uuid=%s;table_clear=no_data;",
+                             DM_IMA_VERSION_STR, dev_name, dev_uuid);
        }
 
        capacity_len = strlen(capacity_str);
@@ -706,7 +703,7 @@ void dm_ima_measure_on_device_rename(struct mapped_device *md)
        char *old_device_data = NULL, *new_device_data = NULL, *combined_device_data = NULL;
        char *new_dev_name = NULL, *new_dev_uuid = NULL, *capacity_str = NULL;
        bool noio = true;
-       int r;
+       int r, len;
 
        if (dm_ima_alloc_and_copy_device_data(md, &new_device_data,
                                              md->ima.active_table.num_targets, noio))
@@ -728,12 +725,11 @@ void dm_ima_measure_on_device_rename(struct mapped_device *md)
        md->ima.active_table.device_metadata = new_device_data;
        md->ima.active_table.device_metadata_len = strlen(new_device_data);
 
-       scnprintf(combined_device_data, DM_IMA_DEVICE_BUF_LEN * 2,
-                 "%s%snew_name=%s,new_uuid=%s;%s", DM_IMA_VERSION_STR, old_device_data,
-                 new_dev_name, new_dev_uuid, capacity_str);
+       len = scnprintf(combined_device_data, DM_IMA_DEVICE_BUF_LEN * 2,
+                       "%s%snew_name=%s,new_uuid=%s;%s", DM_IMA_VERSION_STR, old_device_data,
+                       new_dev_name, new_dev_uuid, capacity_str);
 
-       dm_ima_measure_data("dm_device_rename", combined_device_data, strlen(combined_device_data),
-                           noio);
+       dm_ima_measure_data("dm_device_rename", combined_device_data, len, noio);
 
        goto exit;