Commit ebbd1769 authored by Dmitry Antipov's avatar Dmitry Antipov Committed by Mikulas Patocka
Browse files

dm: ima: avoid extra calls to strlen()



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: default avatarDmitry Antipov <dmantipov@yandex.ru>
Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
parent 548d88f7
Loading
Loading
Loading
Loading
+19 −23
Original line number Diff line number Diff line
@@ -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_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);
		target_metadata_buf_len = strlen(target_metadata_buf);

		/*
		 * 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,
		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);
		l = strlen(device_table_data);

	}

	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,
		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);
		l = strlen(device_table_data);
	}

	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,
		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);
		l = strlen(device_table_data);
	}

	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,
	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;