From 474fcf64b2ec6c52e0b347de388741232a04c44a Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Thu, 7 Dec 2017 17:18:21 -0700 Subject: [PATCH] test: remove all uses of strcpy in the code Then also add a check in check_format.sh and fail if a new instance is found again. Signed-off-by: Jim Harris Change-Id: Ia35c343e1b7bb44b3b5f4f8484adb9e0d5702d67 Reviewed-on: https://review.gerrithub.io/390916 Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker Tested-by: SPDK Automated Test System --- scripts/check_format.sh | 13 +++++++++++++ test/unit/lib/iscsi/param.c/param_ut.c | 4 ++-- .../jsonrpc/jsonrpc_server.c/jsonrpc_server_ut.c | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/scripts/check_format.sh b/scripts/check_format.sh index 1053647af..2bb3a8c21 100755 --- a/scripts/check_format.sh +++ b/scripts/check_format.sh @@ -51,6 +51,19 @@ else fi rm -f comment.log +echo -n "Checking for use of forbidden library functions..." + +git grep -w strcpy -- app examples lib test > badfunc.log || true + +if [ -s badfunc.log ]; then + echo " Forbidden library functions detected" + cat badfunc.log + rc=1 +else + echo " OK" +fi +rm -f badfunc.log + echo -n "Checking blank lines at end of file..." if ! git grep -I -l -e . -z | \ diff --git a/test/unit/lib/iscsi/param.c/param_ut.c b/test/unit/lib/iscsi/param.c/param_ut.c index 81c2eadde..a132f41e4 100644 --- a/test/unit/lib/iscsi/param.c/param_ut.c +++ b/test/unit/lib/iscsi/param.c/param_ut.c @@ -240,7 +240,7 @@ parse_valid_test(void) data = malloc(len); SPDK_CU_ASSERT_FATAL(data != NULL); memset(data, 'A', len); - strcpy(data, "CHAP_C"); + memcpy(data, "CHAP_C", 6); data[6] = '='; data[len - 1] = '\0'; rc = spdk_iscsi_parse_params(¶ms, data, len, false, NULL); @@ -315,7 +315,7 @@ parse_invalid_test(void) data = malloc(len); SPDK_CU_ASSERT_FATAL(data != NULL); memset(data, 'A', len); - strcpy(data, "CHAP_C"); + memcpy(data, "CHAP_C", 6); data[6] = '='; data[len - 1] = '\0'; rc = spdk_iscsi_parse_params(¶ms, data, len, false, NULL); diff --git a/test/unit/lib/jsonrpc/jsonrpc_server.c/jsonrpc_server_ut.c b/test/unit/lib/jsonrpc/jsonrpc_server.c/jsonrpc_server_ut.c index 7b6727a19..7661e2bd5 100644 --- a/test/unit/lib/jsonrpc/jsonrpc_server.c/jsonrpc_server_ut.c +++ b/test/unit/lib/jsonrpc/jsonrpc_server.c/jsonrpc_server_ut.c @@ -361,7 +361,8 @@ test_parse_request_streaming(void) FREE_REQUEST(); /* Partial (but not invalid) requests - parse should not consume anything. */ - strcpy(g_buf, "{\"jsonrpc\":\"2.0\",\"method\":\"b\",\"params\":[2],\"id\":2}"); + snprintf(g_buf, sizeof(g_buf), "%s", + "{\"jsonrpc\":\"2.0\",\"method\":\"b\",\"params\":[2],\"id\":2}"); len = strlen(g_buf); /* Try every partial length up to the full request length */