aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJere Leppänen <jere.leppanen@nokia.com>2024-02-16 14:25:46 +0200
committerMatias Elo <matias.elo@nokia.com>2024-03-08 11:46:07 +0200
commitf15333dba263c00969c7197105f2c0db69b012b1 (patch)
tree1135f5414b57fbb625c2bd9b853467b1ac9d601d
parent4fef7d1a54d3be0cc290d5620820701dfa86e045 (diff)
linux-gen: use _odp_strcpy() instead of strncpy()
Use _odp_strcpy() instead of strncpy(). Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com> Reviewed-by: Matias Elo <matias.elo@nokia.com>
-rw-r--r--platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c9
-rw-r--r--platform/linux-generic/arch/x86/odp_sysinfo_parse.c5
-rw-r--r--platform/linux-generic/odp_classification.c10
-rw-r--r--platform/linux-generic/odp_dma.c7
-rw-r--r--platform/linux-generic/odp_ishm.c3
-rw-r--r--platform/linux-generic/odp_ml.c13
-rw-r--r--platform/linux-generic/odp_packet_io.c4
-rw-r--r--platform/linux-generic/odp_pool.c9
-rw-r--r--platform/linux-generic/odp_queue_basic.c9
-rw-r--r--platform/linux-generic/odp_queue_scalable.c4
-rw-r--r--platform/linux-generic/odp_schedule_basic.c23
-rw-r--r--platform/linux-generic/odp_schedule_scalable.c3
-rw-r--r--platform/linux-generic/odp_schedule_sp.c23
-rw-r--r--platform/linux-generic/odp_timer.c8
-rw-r--r--platform/linux-generic/pktio/dpdk.c5
-rw-r--r--platform/linux-generic/pktio/stats/ethtool_stats.c3
16 files changed, 64 insertions, 74 deletions
diff --git a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c
index 2049cc42f..69d3d12cc 100644
--- a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c
@@ -6,6 +6,7 @@
#include <odp_global_data.h>
#include <odp_sysinfo_internal.h>
+#include <odp_string_internal.h>
#include <string.h>
int _odp_cpuinfo_parser(FILE *file, system_info_t *sysinfo)
@@ -39,13 +40,9 @@ int _odp_cpuinfo_parser(FILE *file, system_info_t *sysinfo)
pos = strstr(str, "cpu");
if (pos) {
- int len;
-
pos = strchr(str, ':');
- strncpy(sysinfo->model_str[id], pos + 2,
- MODEL_STR_SIZE - 1);
- len = strlen(sysinfo->model_str[id]);
- sysinfo->model_str[id][len - 1] = 0;
+ _odp_strcpy(sysinfo->model_str[id], pos + 2,
+ MODEL_STR_SIZE);
model = 1;
count--;
}
diff --git a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c
index 3cbdb2037..a2f9901b9 100644
--- a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c
@@ -6,6 +6,7 @@
*/
#include <odp_sysinfo_internal.h>
+#include <odp_string_internal.h>
#include "cpu_flags.h"
#include <string.h>
@@ -49,8 +50,8 @@ int _odp_cpuinfo_parser(FILE *file, system_info_t *sysinfo)
if (pos_end != NULL)
*(pos_end - 1) = '\0';
- strncpy(sysinfo->model_str[id], pos + 2,
- MODEL_STR_SIZE - 1);
+ _odp_strcpy(sysinfo->model_str[id], pos + 2,
+ MODEL_STR_SIZE);
if (sysinfo->cpu_hz_max[id]) {
freq_set = true;
diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c
index 016a8f0c5..7a7bcb8ca 100644
--- a/platform/linux-generic/odp_classification.c
+++ b/platform/linux-generic/odp_classification.c
@@ -21,6 +21,7 @@
#include <odp_packet_io_internal.h>
#include <odp_classification_datamodel.h>
#include <odp_classification_internal.h>
+#include <odp_string_internal.h>
#include <protocols/eth.h>
#include <protocols/ip.h>
#include <protocols/ipsec.h>
@@ -278,12 +279,11 @@ odp_cos_t odp_cls_cos_create(const char *name, const odp_cls_cos_param_t *param_
if (0 == cos->valid) {
char *cos_name = cos->name;
- if (name == NULL) {
+ if (name == NULL)
cos_name[0] = 0;
- } else {
- strncpy(cos_name, name, ODP_COS_NAME_LEN - 1);
- cos_name[ODP_COS_NAME_LEN - 1] = 0;
- }
+ else
+ _odp_strcpy(cos_name, name, ODP_COS_NAME_LEN);
+
for (j = 0; j < CLS_PMR_PER_COS_MAX; j++) {
cos->pmr[j] = NULL;
cos->linked_cos[j] = NULL;
diff --git a/platform/linux-generic/odp_dma.c b/platform/linux-generic/odp_dma.c
index b3439498c..b4e0a38f3 100644
--- a/platform/linux-generic/odp_dma.c
+++ b/platform/linux-generic/odp_dma.c
@@ -23,6 +23,7 @@
#include <odp_init_internal.h>
#include <odp_event_internal.h>
#include <odp_pool_internal.h>
+#include <odp_string_internal.h>
#include <string.h>
#include <inttypes.h>
@@ -263,10 +264,8 @@ odp_dma_t odp_dma_create(const char *name, const odp_dma_param_t *param)
session->name[0] = 0;
- if (name) {
- strncpy(session->name, name, ODP_DMA_NAME_LEN - 1);
- session->name[ODP_DMA_NAME_LEN - 1] = 0;
- }
+ if (name)
+ _odp_strcpy(session->name, name, ODP_DMA_NAME_LEN);
session->dma_param = *param;
diff --git a/platform/linux-generic/odp_ishm.c b/platform/linux-generic/odp_ishm.c
index 3ef1894bc..73ef08b5d 100644
--- a/platform/linux-generic/odp_ishm.c
+++ b/platform/linux-generic/odp_ishm.c
@@ -49,6 +49,7 @@
#include <odp_ishmphy_internal.h>
#include <odp_ishmpool_internal.h>
#include <odp_libconfig_internal.h>
+#include <odp_string_internal.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
@@ -1090,7 +1091,7 @@ int _odp_ishm_reserve(const char *name, uint64_t size, int fd,
/* save block name (if any given): */
if (name)
- strncpy(new_block->name, name, ISHM_NAME_MAXLEN - 1);
+ _odp_strcpy(new_block->name, name, ISHM_NAME_MAXLEN);
else
new_block->name[0] = 0;
diff --git a/platform/linux-generic/odp_ml.c b/platform/linux-generic/odp_ml.c
index 6ab9e7177..27236b7d1 100644
--- a/platform/linux-generic/odp_ml.c
+++ b/platform/linux-generic/odp_ml.c
@@ -26,6 +26,7 @@
#include <odp_libconfig_internal.h>
#include <odp_macros_internal.h>
#include <odp_pool_internal.h>
+#include <odp_string_internal.h>
#include <onnxruntime_c_api.h>
@@ -505,8 +506,7 @@ static int get_model_io_info(OrtSession *session, ml_model_t *mdl,
return -1;
}
- strncpy(input_info[i].name, name, ODP_ML_MODEL_IO_NAME_LEN - 1);
- input_info[i].name[ODP_ML_MODEL_IO_NAME_LEN - 1] = 0;
+ _odp_strcpy(input_info[i].name, name, ODP_ML_MODEL_IO_NAME_LEN);
/* Free memory allocated by SessionGetInputName */
status = ort_api->AllocatorFree(allocator, name);
@@ -556,8 +556,7 @@ static int get_model_io_info(OrtSession *session, ml_model_t *mdl,
return -1;
}
- strncpy(output_info[i].name, name, ODP_ML_MODEL_IO_NAME_LEN - 1);
- output_info[i].name[ODP_ML_MODEL_IO_NAME_LEN - 1] = 0;
+ _odp_strcpy(output_info[i].name, name, ODP_ML_MODEL_IO_NAME_LEN);
/* Free memory allocated by SessionGetOutputName */
status = ort_api->AllocatorFree(allocator, name);
@@ -917,10 +916,8 @@ odp_ml_model_t odp_ml_model_create(const char *name, const odp_ml_model_param_t
mdl->session_opts = session_opts;
info->index = i;
- if (name) {
- strncpy(info->name, name, ODP_ML_MODEL_NAME_LEN - 1);
- info->name[ODP_ML_MODEL_NAME_LEN - 1] = 0;
- }
+ if (name)
+ _odp_strcpy(info->name, name, ODP_ML_MODEL_NAME_LEN);
mdl->max_compl_id = param->max_compl_id;
for (uint32_t j = 0; j < ML_MAX_COMPL_ID; j++)
diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c
index 8283c41e6..ec614c002 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -31,6 +31,7 @@
#include <odp_libconfig_internal.h>
#include <odp_packet_internal.h>
#include <odp_packet_io_internal.h>
+#include <odp_string_internal.h>
#include <odp_pcapng.h>
#include <odp_queue_if.h>
#include <odp_schedule_if.h>
@@ -229,8 +230,7 @@ static const char *strip_pktio_type(const char *name, char *type_out)
int type_len = if_name - name;
char pktio_type[type_len + 1];
- strncpy(pktio_type, name, type_len);
- pktio_type[type_len] = '\0';
+ _odp_strcpy(pktio_type, name, type_len + 1);
/* Remove colon */
if_name++;
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c
index d3fde70f6..5bb8ddf58 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -32,6 +32,7 @@
#include <odp_timer_internal.h>
#include <odp_event_vector_internal.h>
#include <odp_buffer_internal.h>
+#include <odp_string_internal.h>
#include <string.h>
#include <stdio.h>
@@ -647,12 +648,10 @@ static bool shm_is_from_huge_pages(odp_shm_t shm)
static void set_pool_name(pool_t *pool, const char *name)
{
- if (name == NULL) {
+ if (name == NULL)
pool->name[0] = 0;
- } else {
- strncpy(pool->name, name, ODP_POOL_NAME_LEN - 1);
- pool->name[ODP_POOL_NAME_LEN - 1] = 0;
- }
+ else
+ _odp_strcpy(pool->name, name, ODP_POOL_NAME_LEN);
}
static void set_pool_cache_size(pool_t *pool, uint32_t cache_size)
diff --git a/platform/linux-generic/odp_queue_basic.c b/platform/linux-generic/odp_queue_basic.c
index f9700742c..44d035f3e 100644
--- a/platform/linux-generic/odp_queue_basic.c
+++ b/platform/linux-generic/odp_queue_basic.c
@@ -33,6 +33,7 @@
#include <odp_queue_if.h>
#include <odp_schedule_if.h>
#include <odp_timer_internal.h>
+#include <odp_string_internal.h>
#include <inttypes.h>
#include <string.h>
@@ -1049,12 +1050,10 @@ static int queue_init(queue_entry_t *queue, const char *name,
queue_type = param->type;
- if (name == NULL) {
+ if (name == NULL)
queue->name[0] = 0;
- } else {
- strncpy(queue->name, name, ODP_QUEUE_NAME_LEN - 1);
- queue->name[ODP_QUEUE_NAME_LEN - 1] = 0;
- }
+ else
+ _odp_strcpy(queue->name, name, ODP_QUEUE_NAME_LEN);
memcpy(&queue->param, param, sizeof(odp_queue_param_t));
if (queue->param.sched.lock_count > _odp_sched_fn->max_ordered_locks())
return -1;
diff --git a/platform/linux-generic/odp_queue_scalable.c b/platform/linux-generic/odp_queue_scalable.c
index bddaa532d..a9723c3bb 100644
--- a/platform/linux-generic/odp_queue_scalable.c
+++ b/platform/linux-generic/odp_queue_scalable.c
@@ -29,6 +29,7 @@
#include <odp/api/plat/queue_inline_types.h>
#include <odp_global_data.h>
#include <odp_macros_internal.h>
+#include <odp_string_internal.h>
#include <string.h>
#include <inttypes.h>
@@ -104,8 +105,7 @@ static int queue_init(queue_entry_t *queue, const char *name,
sched_elem = &queue->sched_elem;
ring_size = param->size > 0 ?
_ODP_ROUNDUP_POWER2_U32(param->size) : CONFIG_SCAL_QUEUE_SIZE;
- strncpy(queue->name, name ? name : "", ODP_QUEUE_NAME_LEN - 1);
- queue->name[ODP_QUEUE_NAME_LEN - 1] = 0;
+ _odp_strcpy(queue->name, name ? name : "", ODP_QUEUE_NAME_LEN);
memcpy(&queue->param, param, sizeof(odp_queue_param_t));
size = ring_size * sizeof(_odp_event_hdr_t *);
diff --git a/platform/linux-generic/odp_schedule_basic.c b/platform/linux-generic/odp_schedule_basic.c
index df26cb04f..e8814ed3c 100644
--- a/platform/linux-generic/odp_schedule_basic.c
+++ b/platform/linux-generic/odp_schedule_basic.c
@@ -674,13 +674,12 @@ static int schedule_init_global(void)
sched->sched_grp[ODP_SCHED_GROUP_ALL].allocated = 1;
sched->sched_grp[ODP_SCHED_GROUP_WORKER].allocated = 1;
sched->sched_grp[ODP_SCHED_GROUP_CONTROL].allocated = 1;
- strncpy(sched->sched_grp[ODP_SCHED_GROUP_ALL].name, "__SCHED_GROUP_ALL",
- ODP_SCHED_GROUP_NAME_LEN - 1);
- strncpy(sched->sched_grp[ODP_SCHED_GROUP_WORKER].name, "__SCHED_GROUP_WORKER",
- ODP_SCHED_GROUP_NAME_LEN - 1);
- strncpy(sched->sched_grp[ODP_SCHED_GROUP_CONTROL].name, "__SCHED_GROUP_CONTROL",
- ODP_SCHED_GROUP_NAME_LEN - 1);
-
+ _odp_strcpy(sched->sched_grp[ODP_SCHED_GROUP_ALL].name, "__SCHED_GROUP_ALL",
+ ODP_SCHED_GROUP_NAME_LEN);
+ _odp_strcpy(sched->sched_grp[ODP_SCHED_GROUP_WORKER].name, "__SCHED_GROUP_WORKER",
+ ODP_SCHED_GROUP_NAME_LEN);
+ _odp_strcpy(sched->sched_grp[ODP_SCHED_GROUP_CONTROL].name, "__SCHED_GROUP_CONTROL",
+ ODP_SCHED_GROUP_NAME_LEN);
odp_thrmask_setall(&sched->mask_all);
@@ -1933,13 +1932,11 @@ static odp_schedule_group_t schedule_group_create(const char *name,
if (!sched->sched_grp[i].allocated) {
char *grp_name = sched->sched_grp[i].name;
- if (name == NULL) {
+ if (name == NULL)
grp_name[0] = 0;
- } else {
- strncpy(grp_name, name,
- ODP_SCHED_GROUP_NAME_LEN - 1);
- grp_name[ODP_SCHED_GROUP_NAME_LEN - 1] = 0;
- }
+ else
+ _odp_strcpy(grp_name, name,
+ ODP_SCHED_GROUP_NAME_LEN);
grp_update_mask(i, mask);
group = (odp_schedule_group_t)i;
diff --git a/platform/linux-generic/odp_schedule_scalable.c b/platform/linux-generic/odp_schedule_scalable.c
index 5166fb6d0..6cded34ab 100644
--- a/platform/linux-generic/odp_schedule_scalable.c
+++ b/platform/linux-generic/odp_schedule_scalable.c
@@ -35,6 +35,7 @@
#include <odp_macros_internal.h>
#include <odp_packet_io_internal.h>
#include <odp_timer_internal.h>
+#include <odp_string_internal.h>
#include <limits.h>
#include <stdbool.h>
@@ -1468,7 +1469,7 @@ static odp_schedule_group_t schedule_group_create(const char *name,
if (sg == NULL)
goto shm_pool_alloc_failed;
- strncpy(sg->name, name ? name : "", ODP_SCHED_GROUP_NAME_LEN - 1);
+ _odp_strcpy(sg->name, name ? name : "", ODP_SCHED_GROUP_NAME_LEN);
global->sg_vec[sgi] = sg;
memset(sg->thr_actual, 0, sizeof(sg->thr_actual));
sg->thr_wanted = bitset_null();
diff --git a/platform/linux-generic/odp_schedule_sp.c b/platform/linux-generic/odp_schedule_sp.c
index f4725eb8f..2476509f3 100644
--- a/platform/linux-generic/odp_schedule_sp.c
+++ b/platform/linux-generic/odp_schedule_sp.c
@@ -32,6 +32,7 @@
#include <odp_ring_u32_internal.h>
#include <odp_timer_internal.h>
#include <odp_queue_basic_internal.h>
+#include <odp_string_internal.h>
#include <odp_global_data.h>
#include <string.h>
@@ -213,18 +214,18 @@ static int init_global(void)
for (i = 0; i < NUM_THREAD; i++)
odp_atomic_init_u32(&sched_group->s.thr[i].gen_cnt, 0);
- strncpy(sched_group->s.group[GROUP_ALL].name, "__group_all",
- ODP_SCHED_GROUP_NAME_LEN - 1);
+ _odp_strcpy(sched_group->s.group[GROUP_ALL].name, "__group_all",
+ ODP_SCHED_GROUP_NAME_LEN);
odp_thrmask_zero(&sched_group->s.group[GROUP_ALL].mask);
sched_group->s.group[GROUP_ALL].allocated = 1;
- strncpy(sched_group->s.group[GROUP_WORKER].name, "__group_worker",
- ODP_SCHED_GROUP_NAME_LEN - 1);
+ _odp_strcpy(sched_group->s.group[GROUP_WORKER].name, "__group_worker",
+ ODP_SCHED_GROUP_NAME_LEN);
odp_thrmask_zero(&sched_group->s.group[GROUP_WORKER].mask);
sched_group->s.group[GROUP_WORKER].allocated = 1;
- strncpy(sched_group->s.group[GROUP_CONTROL].name, "__group_control",
- ODP_SCHED_GROUP_NAME_LEN - 1);
+ _odp_strcpy(sched_group->s.group[GROUP_CONTROL].name, "__group_control",
+ ODP_SCHED_GROUP_NAME_LEN);
odp_thrmask_zero(&sched_group->s.group[GROUP_CONTROL].mask);
sched_group->s.group[GROUP_CONTROL].allocated = 1;
@@ -804,13 +805,11 @@ static odp_schedule_group_t schedule_group_create(const char *name,
#if __GNUC__ >= 13
#pragma GCC diagnostic ignored "-Wstringop-overflow"
#endif
- if (name == NULL) {
+ if (name == NULL)
grp_name[0] = 0;
- } else {
- strncpy(grp_name, name,
- ODP_SCHED_GROUP_NAME_LEN - 1);
- grp_name[ODP_SCHED_GROUP_NAME_LEN - 1] = 0;
- }
+ else
+ _odp_strcpy(grp_name, name,
+ ODP_SCHED_GROUP_NAME_LEN);
#pragma GCC diagnostic pop
odp_thrmask_copy(&sched_group->s.group[i].mask, thrmask);
diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c
index 0349e66dd..89abdf575 100644
--- a/platform/linux-generic/odp_timer.c
+++ b/platform/linux-generic/odp_timer.c
@@ -1232,12 +1232,10 @@ static odp_timer_pool_t timer_pool_new(const char *name, const odp_timer_pool_pa
odp_atomic_init_u64(&tp->cur_tick, 0);
- if (name == NULL) {
+ if (name == NULL)
tp->name[0] = 0;
- } else {
- strncpy(tp->name, name, ODP_TIMER_POOL_NAME_LEN - 1);
- tp->name[ODP_TIMER_POOL_NAME_LEN - 1] = 0;
- }
+ else
+ _odp_strcpy(tp->name, name, ODP_TIMER_POOL_NAME_LEN);
tp->param = *param;
tp->param.res_ns = res_ns;
diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c
index e3d0191f3..59a1c9905 100644
--- a/platform/linux-generic/pktio/dpdk.c
+++ b/platform/linux-generic/pktio/dpdk.c
@@ -34,6 +34,7 @@
#include <protocols/udp.h>
#include <odp_pool_internal.h>
#include <odp_socket_common.h>
+#include <odp_string_internal.h>
#include <rte_config.h>
#include <rte_common.h>
@@ -2476,8 +2477,8 @@ static int dpdk_extra_stat_info(pktio_entry_t *pktio_entry,
num_stats = ret;
for (i = 0; i < num && i < num_stats; i++)
- strncpy(info[i].name, xstats_names[i].name,
- ODP_PKTIO_STATS_EXTRA_NAME_LEN - 1);
+ _odp_strcpy(info[i].name, xstats_names[i].name,
+ ODP_PKTIO_STATS_EXTRA_NAME_LEN);
return num_stats;
}
diff --git a/platform/linux-generic/pktio/stats/ethtool_stats.c b/platform/linux-generic/pktio/stats/ethtool_stats.c
index bbf0729f1..9c9cbd6c9 100644
--- a/platform/linux-generic/pktio/stats/ethtool_stats.c
+++ b/platform/linux-generic/pktio/stats/ethtool_stats.c
@@ -10,6 +10,7 @@
#include <odp/api/packet_io_stats.h>
#include <odp_debug_internal.h>
+#include <odp_string_internal.h>
#include <odp_ethtool_stats.h>
#include <sys/ioctl.h>
@@ -234,7 +235,7 @@ int _odp_ethtool_extra_stat_info(int fd, const char *name,
for (i = 0; i < n_stats && i < (unsigned int)num; i++) {
char *cnt = (char *)&strings->data[i * ETH_GSTRING_LEN];
- strncpy(info[i].name, cnt, ODP_PKTIO_STATS_EXTRA_NAME_LEN - 1);
+ _odp_strcpy(info[i].name, cnt, ODP_PKTIO_STATS_EXTRA_NAME_LEN);
}
free(strings);