change all the sprintf to snprintf to address the potential buffer/stack overflow 38/3638/1
authorZhimin <zhimin.yuan@intel.com>
Fri, 8 May 2020 18:07:33 +0000 (02:07 +0800)
committerZhimin <zhimin.yuan@intel.com>
Fri, 8 May 2020 18:08:16 +0000 (02:08 +0800)
Change-Id: Ia25063b655113feb8b7e95e673d8aba373e44abc
Signed-off-by: Zhimin <zhimin.yuan@intel.com>
example_odulow_build.txt [deleted file]
fhi_lib/app/src/sample-app.c
fhi_lib/lib/ethernet/ethdi.c
fhi_lib/lib/src/xran_sync_api.c

diff --git a/example_odulow_build.txt b/example_odulow_build.txt
deleted file mode 100644 (file)
index 8ef4f8d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#! /bin/bash
-# This is an example on how the different dependencies of the odulow fhi_lib can be brought into a build server
-# which currently is the only module being built under odulow.
-# In the example illustrated here we use a Centos OS in the server so the user should adopt the proper procedures
-# for their target OS if it is different than Centos
-cd /etc/yum.repos.d/
-mkdir backup;
-mv *.repo backup;
-
-curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-yum makecache
-
-yum install vim gcc-c++ libhugetlbfs* libstdc++* kernel-devel numa* gcc git mlocate xorg-x11-server-Xorg -y
-cd /home
-mkdir odu_low_test
-cd /home/odu_low_test 
-
-wget http://fast.dpdk.org/rel/dpdk-18.08.1.tar.xz
-xz -d dpdk-18.08.1.tar.xz
-tar -xvf dpdk-18.08.1.tar
-mv dpdk-stable-18.08.1 dpdk-18.08
-
-cd dpdk-18.08/usertools/
-
-./dpdk-setup.sh<<EOF
-15
-35
-EOF
-
-# After the dependencies have been brought in we can clone the ORAN repository, this step requires the user to provide credentials
-git clone "https://gerrit.o-ran-sc.org/r/o-du/phy"
-#
-# The next step is to define the global variables used by the continous integration build shell script
-# and the odulow Front Haul Library makefile
-# In this example we are building the fhi_lib using gcc and the testapp is not being built.
-
-export XRAN_DIR=/home/odu_low_test/phy/fhi_lib
-export RTE_SDK=/home/odu_low_test/dpdk-18.08
-export RTE_TARGET=x86_64-native-linuxapp-gcc
-export BUILD_GCC=1
-cd phy/fhi_lib
-chmod 777 build_ci.sh
-./build_ci.sh
-
index 362fa5a..4b28193 100644 (file)
@@ -1460,7 +1460,7 @@ int main(int argc, char *argv[])
     xranInit.p_o_du_addr = (int8_t *)&startupConfiguration.o_du_addr;\r
     xranInit.p_o_ru_addr = (int8_t *)&startupConfiguration.o_ru_addr;\r
 \r
-    sprintf(prefix_name, "wls_%d",startupConfiguration.instance_id);\r
+    snprintf(prefix_name, sizeof(prefix_name), "wls_%d",startupConfiguration.instance_id);\r
     xranInit.filePrefix  = prefix_name;\r
 \r
     xranInit.totalBfWeights = startupConfiguration.totalBfWeights;\r
@@ -1664,14 +1664,14 @@ int main(int argc, char *argv[])
 \r
     for (i = 0; i < MAX_ANT_CARRIER_SUPPORTED && i < (uint32_t)(numCCPorts * num_eAxc); i++) {\r
 \r
-        sprintf(filename, "./logs/%s-play_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+        snprintf(filename, sizeof(filename), "./logs/%s-play_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
         sys_save_buf_to_file_txt(filename,\r
                             "DL IFFT IN IQ Samples in human readable format",\r
                             (uint8_t*) p_tx_play_buffer[i],\r
                             tx_play_buffer_size[i],\r
                             1);\r
 \r
-        sprintf(filename, "./logs/%s-play_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+        snprintf(filename, sizeof(filename),"./logs/%s-play_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
         sys_save_buf_to_file(filename,\r
                             "DL IFFT IN IQ Samples in binary format",\r
                             (uint8_t*) p_tx_play_buffer[i],\r
@@ -1680,14 +1680,14 @@ int main(int argc, char *argv[])
 \r
 \r
         if (startupConfiguration.appMode == APP_O_DU && startupConfiguration.xranCat == XRAN_CATEGORY_B){\r
-            sprintf(filename, "./logs/%s-dl_bfw_ue%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+            snprintf(filename, sizeof(filename),"./logs/%s-dl_bfw_ue%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
             sys_save_buf_to_file_txt(filename,\r
                                 "DL Beamformig weights IQ Samples in human readable format",\r
                                 (uint8_t*) p_tx_dl_bfw_buffer[i],\r
                                 tx_dl_bfw_buffer_size[i],\r
                                 1);\r
 \r
-            sprintf(filename, "./logs/%s-dl_bfw_ue%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+            snprintf(filename, sizeof(filename),"./logs/%s-dl_bfw_ue%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
             sys_save_buf_to_file(filename,\r
                                 "DL Beamformig weightsIQ Samples in binary format",\r
                                 (uint8_t*) p_tx_dl_bfw_buffer[i],\r
@@ -1695,14 +1695,14 @@ int main(int argc, char *argv[])
                                 sizeof(short));\r
 \r
 \r
-            sprintf(filename, "./logs/%s-ul_bfw_ue%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+            snprintf(filename, sizeof(filename), "./logs/%s-ul_bfw_ue%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
             sys_save_buf_to_file_txt(filename,\r
                                 "UL Beamformig weights IQ Samples in human readable format",\r
                                 (uint8_t*) p_tx_ul_bfw_buffer[i],\r
                                 tx_ul_bfw_buffer_size[i],\r
                                 1);\r
 \r
-            sprintf(filename, "./logs/%s-ul_bfw_ue%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+            snprintf(filename, sizeof(filename),"./logs/%s-ul_bfw_ue%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
             sys_save_buf_to_file(filename,\r
                                 "UL Beamformig weightsIQ Samples in binary format",\r
                                 (uint8_t*) p_tx_ul_bfw_buffer[i],\r
@@ -1712,14 +1712,14 @@ int main(int argc, char *argv[])
         }\r
 \r
         if (startupConfiguration.appMode == APP_O_RU && startupConfiguration.enablePrach){\r
-            sprintf(filename, "./logs/%s-play_prach_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+            snprintf(filename, sizeof(filename), "./logs/%s-play_prach_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
             sys_save_buf_to_file_txt(filename,\r
                                 "PRACH IQ Samples in human readable format",\r
                                 (uint8_t*) p_tx_prach_play_buffer[i],\r
                                 tx_prach_play_buffer_size[i],\r
                                 1);\r
 \r
-            sprintf(filename, "./logs/%s-play_prach_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+            snprintf(filename, sizeof(filename), "./logs/%s-play_prach_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
             sys_save_buf_to_file(filename,\r
                                 "PRACH IQ Samples in binary format",\r
                                 (uint8_t*) p_tx_prach_play_buffer[i],\r
@@ -1734,14 +1734,14 @@ int main(int argc, char *argv[])
            i++) {\r
 \r
 \r
-            sprintf(filename, "./logs/%s-play_srs_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+            snprintf(filename, sizeof(filename), "./logs/%s-play_srs_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
             sys_save_buf_to_file_txt(filename,\r
                             "SRS IQ Samples in human readable format",\r
                             (uint8_t*) p_tx_srs_play_buffer[i],\r
                             tx_srs_play_buffer_size[i],\r
                             1);\r
 \r
-            sprintf(filename, "./logs/%s-play_srs_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+            snprintf(filename,sizeof(filename), "./logs/%s-play_srs_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
             sys_save_buf_to_file(filename,\r
                                 "SRS IQ Samples in binary format",\r
                                 (uint8_t*) p_tx_srs_play_buffer[i],\r
@@ -2026,7 +2026,7 @@ int main(int argc, char *argv[])
         exit(-1);\r
     }\r
 \r
-    sprintf(filename, "mlog-%s", startupConfiguration.appMode == 0 ? "o-du" : "o-ru");\r
+    snprintf(filename, sizeof(filename),"mlog-%s", startupConfiguration.appMode == 0 ? "o-du" : "o-ru");\r
 \r
     /* MLogOpen(0, 32, 0, 0xFFFFFFFF, filename);*/\r
 \r
@@ -2186,14 +2186,14 @@ int main(int argc, char *argv[])
 \r
     for (i = 0; i < MAX_ANT_CARRIER_SUPPORTED && i < (uint32_t)(numCCPorts * num_eAxc); i++) {\r
 \r
-        sprintf(filename, "./logs/%s-rx_log_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+        snprintf(filename, sizeof(filename), "./logs/%s-rx_log_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
         sys_save_buf_to_file_txt(filename,\r
                             "UL FFT OUT IQ Samples in human readable format",\r
                             (uint8_t*) p_rx_log_buffer[i],\r
                             rx_log_buffer_size[i],\r
                             1);\r
 \r
-        sprintf(filename, "./logs/%s-rx_log_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+        snprintf(filename, sizeof(filename), "./logs/%s-rx_log_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
         sys_save_buf_to_file(filename,\r
                             "UL FFT OUT IQ Samples in binary format",\r
                             (uint8_t*) p_rx_log_buffer[i],\r
@@ -2205,14 +2205,14 @@ int main(int argc, char *argv[])
         for(i = 0;\r
         i < MAX_ANT_CARRIER_SUPPORTED_CAT_B && i < (uint32_t)(numCCPorts * startupConfiguration.antElmTRx);\r
         i++) {\r
-            sprintf(filename, "./logs/%s-srs_log_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+            snprintf(filename, sizeof(filename), "./logs/%s-srs_log_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
             sys_save_buf_to_file_txt(filename,\r
                                 "SRS UL FFT OUT IQ Samples in human readable format",\r
                                 (uint8_t*) p_srs_log_buffer[i],\r
                                 srs_log_buffer_size[i],\r
                                 1);\r
 \r
-            sprintf(filename, "./logs/%s-srs_log_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+            snprintf(filename, sizeof(filename),  "./logs/%s-srs_log_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
             sys_save_buf_to_file(filename,\r
                                 "SRS UL FFT OUT IQ Samples in binary format",\r
                                 (uint8_t*) p_srs_log_buffer[i],\r
@@ -2253,14 +2253,14 @@ int main(int argc, char *argv[])
 \r
         for (i = 0; i < MAX_ANT_CARRIER_SUPPORTED && i < (uint32_t)(numCCPorts * num_eAxc); i++) {\r
 \r
-            sprintf(filename, "./logs/%s-prach_log_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
+            snprintf(filename, sizeof(filename), "./logs/%s-prach_log_ant%d.txt",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"),  i);\r
             sys_save_buf_to_file_txt(filename,\r
                                 "PRACH FFT OUT IQ Samples in human readable format",\r
                                 (uint8_t*) p_prach_log_buffer[i],\r
                                 prach_log_buffer_size[i],\r
                                 1);\r
 \r
-            sprintf(filename, "./logs/%s-prach_log_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
+            snprintf(filename, sizeof(filename), "./logs/%s-prach_log_ant%d.bin",((startupConfiguration.appMode == APP_O_DU) ? "o-du" : "o-ru"), i);\r
             sys_save_buf_to_file(filename,\r
                                 "PRACH FFT OUT IQ Samples in binary format",\r
                                 (uint8_t*) p_prach_log_buffer[i],\r
index bbde7a1..0205158 100644 (file)
@@ -307,14 +307,14 @@ int xran_ethdi_init_dpdk_io(char *name, const struct xran_io_loop_cfg *io_cfg,
         if (io_cfg->bbdev_mode == XRAN_BBDEV_MODE_HW_ON){\r
             // hw-accelerated bbdev\r
             printf("hw-accelerated bbdev %s\n", io_cfg->bbdev_dev[0]);\r
-            sprintf(bbdev_wdev, "-w %s", io_cfg->bbdev_dev[0]);\r
+            snprintf(bbdev_wdev, sizeof(bbdev_wdev), "-w %s", io_cfg->bbdev_dev[0]);\r
         } else if (io_cfg->bbdev_mode == XRAN_BBDEV_MODE_HW_OFF){\r
             // hw-accelerated bbdev disable\r
             if(io_cfg->bbdev_dev[0]){\r
                 printf("hw-accelerated bbdev disable %s\n", io_cfg->bbdev_dev[0]);\r
-                sprintf(bbdev_wdev, "-b %s", io_cfg->bbdev_dev[0]);\r
+                snprintf(bbdev_wdev, sizeof(bbdev_wdev), "-b %s", io_cfg->bbdev_dev[0]);\r
             }\r
-            sprintf(bbdev_wdev, "%s", "--vdev=baseband_turbo_sw");\r
+            snprintf(bbdev_wdev, sizeof(bbdev_wdev), "%s", "--vdev=baseband_turbo_sw");\r
         } else {\r
             rte_panic("Cannot init DPDK incorrect [bbdev_mode %d]\n", io_cfg->bbdev_mode);\r
         }\r
index 5b1295f..873c2c1 100644 (file)
@@ -71,7 +71,7 @@ static int is_process_running(char *pname)
         long pid = atol(entry->d_name);\r
         if (0 == pid)\r
             continue;\r
-        sprintf(full_path, "%s/%ld/%s", PROC_DIR, pid, COMM_FILE);\r
+        snprintf(full_path, sizeof(full_path), "%s/%ld/%s", PROC_DIR, pid, COMM_FILE);\r
         FILE *proc_name_file = fopen(full_path, "r");\r
         if (NULL == proc_name_file)\r
             continue;\r