[PATCH 3/3] tests/amdgpu: Fix buffer overflow

2019-12-09 Thread Luben Tuikov
This patch fixes the following warning:
-Wformat-overflow=

Signed-off-by: Luben Tuikov 
---
 tests/amdgpu/meson.build |  1 +
 tests/amdgpu/ras_tests.c | 41 
 2 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
index 2a48b43f..faaf0ee6 100644
--- a/tests/amdgpu/meson.build
+++ b/tests/amdgpu/meson.build
@@ -28,6 +28,7 @@ if dep_cunit.found()
 ),
 dependencies : [dep_cunit, dep_threads],
 include_directories : [inc_root, inc_drm, 
include_directories('../../amdgpu')],
+link_args : ['-lbsd'],
 link_with : [libdrm, libdrm_amdgpu],
 install : with_install_tests,
   )
diff --git a/tests/amdgpu/ras_tests.c b/tests/amdgpu/ras_tests.c
index f745166b..c96cde45 100644
--- a/tests/amdgpu/ras_tests.c
+++ b/tests/amdgpu/ras_tests.c
@@ -30,6 +30,10 @@
 #include 
 #include 
 #include "xf86drm.h"
+#include 
+#include 
+
+#define PATH_SIZE PATH_MAX
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
 
@@ -498,7 +502,7 @@ static int get_file_contents(char *file, char *buf, int 
size);
 
 static int amdgpu_ras_lookup_id(drmDevicePtr device)
 {
-   char path[1024];
+   char path[PATH_SIZE];
char str[128];
drmPciBusInfo info;
int i;
@@ -525,8 +529,8 @@ static int amdgpu_ras_lookup_id(drmDevicePtr device)
 //helpers
 
 static int test_card;
-static char sysfs_path[1024];
-static char debugfs_path[1024];
+static char sysfs_path[PATH_SIZE];
+static char debugfs_path[PATH_SIZE];
 static uint32_t ras_mask;
 static amdgpu_device_handle device_handle;
 
@@ -605,10 +609,11 @@ static int amdgpu_ras_is_feature_supported(enum 
amdgpu_ras_block block)
 
 static int amdgpu_ras_invoke(struct ras_debug_if *data)
 {
-   char path[1024];
+   char path[PATH_SIZE];
int ret;
 
-   sprintf(path, "%s%s", get_ras_debugfs_root(), "ras_ctrl");
+   snprintf(path, sizeof(path), "%s", get_ras_debugfs_root());
+   strlcpy(path, "ras_ctrl", sizeof(path));
 
ret = set_file_contents(path, (char *)data, sizeof(*data))
- sizeof(*data);
@@ -619,14 +624,16 @@ static int amdgpu_ras_query_err_count(enum 
amdgpu_ras_block block,
unsigned long *ue, unsigned long *ce)
 {
char buf[64];
-   char name[1024];
+   char name[PATH_SIZE];
 
*ue = *ce = 0;
 
if (amdgpu_ras_is_feature_supported(block) <= 0)
return -1;
 
-   sprintf(name, "%s%s%s", get_ras_sysfs_root(), ras_block_str(block), 
"_err_count");
+   snprintf(name, sizeof(name), "%s", get_ras_sysfs_root());
+   strlcpy(name, ras_block_str(block), sizeof(name));
+   strlcpy(name, "_err_count", sizeof(name));
 
if (is_file_ok(name, O_RDONLY))
return 0;
@@ -837,7 +844,7 @@ static void amdgpu_ras_basic_test(void)
int i;
int j;
uint32_t features;
-   char path[1024];
+   char path[PATH_SIZE];
 
ret = is_file_ok("/sys/module/amdgpu/parameters/ras_mask", O_RDONLY);
CU_ASSERT_EQUAL(ret, 0);
@@ -849,11 +856,15 @@ static void amdgpu_ras_basic_test(void)
sizeof(features), );
CU_ASSERT_EQUAL(ret, 0);
 
-   sprintf(path, "%s%s", get_ras_debugfs_root(), "ras_ctrl");
+   snprintf(path, sizeof(path), "%s", get_ras_debugfs_root());
+   strlcpy(path, "ras_ctrl", sizeof(path));
+
ret = is_file_ok(path, O_WRONLY);
CU_ASSERT_EQUAL(ret, 0);
 
-   sprintf(path, "%s%s", get_ras_sysfs_root(), "features");
+   snprintf(path, sizeof(path), "%s", get_ras_sysfs_root());
+   strlcpy(path, "features", sizeof(path));
+
ret = is_file_ok(path, O_RDONLY);
CU_ASSERT_EQUAL(ret, 0);
 
@@ -865,11 +876,17 @@ static void amdgpu_ras_basic_test(void)
if (!((1 << j) & ras_block_mask_basic))
continue;
 
-   sprintf(path, "%s%s%s", get_ras_sysfs_root(), 
ras_block_str(j), "_err_count");
+   snprintf(path, sizeof(path), "%s", 
get_ras_sysfs_root());
+   strlcpy(path, ras_block_str(j), sizeof(path));
+   strlcpy(path, "_err_count", sizeof(path));
+
ret = is_file_ok(path, O_RDONLY);
CU_ASSERT_EQUAL(ret, 0);
 
-   sprintf(path, "%s%s%s", get_ras_debugfs_root(), 
ras_block_str(j), "_err_inject");
+   snprintf(path, sizeof(path), "%s", 
get_ras_debugfs_root());
+   strlcpy(path, ras_block_str(j), sizeof(path));
+   strlcpy(path, "_err_inject", sizeof(path));
+
ret = is_file_ok(path, O_WRONLY);
CU_ASSERT_EQUAL(ret, 0);
}
-- 
2.24.0.390.g083378cc35

___
amd-gfx 

[PATCH 3/3] tests/amdgpu: Fix buffer overflow

2019-12-05 Thread Luben Tuikov
This patch fixes the following warning:
-Wformat-overflow=

Signed-off-by: Luben Tuikov 
---
 tests/amdgpu/meson.build |  1 +
 tests/amdgpu/ras_tests.c | 41 
 2 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
index 2a48b43f..faaf0ee6 100644
--- a/tests/amdgpu/meson.build
+++ b/tests/amdgpu/meson.build
@@ -28,6 +28,7 @@ if dep_cunit.found()
 ),
 dependencies : [dep_cunit, dep_threads],
 include_directories : [inc_root, inc_drm, 
include_directories('../../amdgpu')],
+link_args : ['-lbsd'],
 link_with : [libdrm, libdrm_amdgpu],
 install : with_install_tests,
   )
diff --git a/tests/amdgpu/ras_tests.c b/tests/amdgpu/ras_tests.c
index 4c395382..9c206e40 100644
--- a/tests/amdgpu/ras_tests.c
+++ b/tests/amdgpu/ras_tests.c
@@ -30,6 +30,10 @@
 #include 
 #include 
 #include "xf86drm.h"
+#include 
+#include 
+
+#define PATH_SIZE PATH_MAX
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
 
@@ -498,7 +502,7 @@ static int get_file_contents(char *file, char *buf, int 
size);
 
 static int amdgpu_ras_lookup_id(drmDevicePtr device)
 {
-   char path[1024];
+   char path[PATH_SIZE];
char str[128];
drmPciBusInfo info;
int i;
@@ -525,8 +529,8 @@ static int amdgpu_ras_lookup_id(drmDevicePtr device)
 //helpers
 
 static int test_card;
-static char sysfs_path[1024];
-static char debugfs_path[1024];
+static char sysfs_path[PATH_SIZE];
+static char debugfs_path[PATH_SIZE];
 static uint32_t ras_mask;
 static amdgpu_device_handle device_handle;
 
@@ -605,10 +609,11 @@ static int amdgpu_ras_is_feature_supported(enum 
amdgpu_ras_block block)
 
 static int amdgpu_ras_invoke(struct ras_debug_if *data)
 {
-   char path[1024];
+   char path[PATH_SIZE];
int ret;
 
-   sprintf(path, "%s%s", get_ras_debugfs_root(), "ras_ctrl");
+   snprintf(path, sizeof(path), "%s", get_ras_debugfs_root());
+   strlcpy(path, "ras_ctrl", sizeof(path));
 
ret = set_file_contents(path, (char *)data, sizeof(*data))
- sizeof(*data);
@@ -619,14 +624,16 @@ static int amdgpu_ras_query_err_count(enum 
amdgpu_ras_block block,
unsigned long *ue, unsigned long *ce)
 {
char buf[64];
-   char name[1024];
+   char name[PATH_SIZE];
 
*ue = *ce = 0;
 
if (amdgpu_ras_is_feature_supported(block) <= 0)
return -1;
 
-   sprintf(name, "%s%s%s", get_ras_sysfs_root(), ras_block_str(block), 
"_err_count");
+   snprintf(name, sizeof(name), "%s", get_ras_sysfs_root());
+   strlcpy(name, ras_block_str(block), sizeof(name));
+   strlcpy(name, "_err_count", sizeof(name));
 
if (is_file_ok(name, O_RDONLY))
return 0;
@@ -839,7 +846,7 @@ static void amdgpu_ras_basic_test(void)
int i;
int j;
uint32_t features;
-   char path[1024];
+   char path[PATH_SIZE];
 
ret = is_file_ok("/sys/module/amdgpu/parameters/ras_mask", O_RDONLY);
CU_ASSERT_EQUAL(ret, 0);
@@ -851,11 +858,15 @@ static void amdgpu_ras_basic_test(void)
sizeof(features), );
CU_ASSERT_EQUAL(ret, 0);
 
-   sprintf(path, "%s%s", get_ras_debugfs_root(), "ras_ctrl");
+   snprintf(path, sizeof(path), "%s", get_ras_debugfs_root());
+   strlcpy(path, "ras_ctrl", sizeof(path));
+
ret = is_file_ok(path, O_WRONLY);
CU_ASSERT_EQUAL(ret, 0);
 
-   sprintf(path, "%s%s", get_ras_sysfs_root(), "features");
+   snprintf(path, sizeof(path), "%s", get_ras_sysfs_root());
+   strlcpy(path, "features", sizeof(path));
+
ret = is_file_ok(path, O_RDONLY);
CU_ASSERT_EQUAL(ret, 0);
 
@@ -867,11 +878,17 @@ static void amdgpu_ras_basic_test(void)
if (!((1 << j) & ras_block_mask_basic))
continue;
 
-   sprintf(path, "%s%s%s", get_ras_sysfs_root(), 
ras_block_str(j), "_err_count");
+   snprintf(path, sizeof(path), "%s", 
get_ras_sysfs_root());
+   strlcpy(path, ras_block_str(j), sizeof(path));
+   strlcpy(path, "_err_count", sizeof(path));
+
ret = is_file_ok(path, O_RDONLY);
CU_ASSERT_EQUAL(ret, 0);
 
-   sprintf(path, "%s%s%s", get_ras_debugfs_root(), 
ras_block_str(j), "_err_inject");
+   snprintf(path, sizeof(path), "%s", 
get_ras_debugfs_root());
+   strlcpy(path, ras_block_str(j), sizeof(path));
+   strlcpy(path, "_err_inject", sizeof(path));
+
ret = is_file_ok(path, O_WRONLY);
CU_ASSERT_EQUAL(ret, 0);
}
-- 
2.24.0.155.gd9f6f3b619

___
amd-gfx