Re: [RFC/RFT PATCH] Coccinelle: Add support for coccinelle infrastructure
Himanshu Jha <himanshujha199640@...>
On Tue, Aug 28, 2018 at 09:03:26PM +0530, Himanshu Jha wrote:
'coccicheck' target is used to initiate Coccinelle toolAssumptions: ----------- I hope everyone has setup their Zephyr Environment, and if not then please use run before testing: $ export ZEPHYR_BASE=$( builtin cd "$( dirname "$DIR" )" && pwd ${PWD_OPT}) Because this variable is used in 'scripts/coccicheck' to determine the root source code tree. Please read the 'coccinelle.rst' documentation and follow the installation instructions. It is always advised to install using the latest sources from Github to fully support Coccinelle. Queries: ------- 1. Is there any bleeding edge branch to base the work on which regularly gets updated like '-next' tree in the mainline kernel ? 2. Copyrights: Zephyr uses Apache 2.0 License and the 'coccicheck' scripts inherited from the mainline kernel use GPLv2 License. So, what is the correct license to be used ? Note: I see 'checkpatch.pl' is copied as-is with few tweaks and uses GPLv2. 3. IIRC Anas pointed out in the TSC meeting to exclude few directories to be parsed/cleaned-up since they were vendor specific(or something like that). So, what directories should be ignored ? P.S: This patch is just to initiate discussion/suggestions/rants and much more constructed patch shall be sent soon. Please test and let me know if there are any bugs/issues. For Coccinelle specific queries contact the list: cocci@... For now, we have only included "badzero.cocci" to show how everything works and will post more cocci rules based on Zephyr and would need your help and suggestions to frame new rules. Some Testing Results: -------------------- ------------------------------------------------------------------------------- himanshu@himanshu-Vostro-3559:~/zephyr$ export ZEPHYR_BASE=$( builtin cd "$( dirname "$DIR" )" && pwd ${PWD_OPT}) himanshu@himanshu-Vostro-3559:~/zephyr$ make coccicheck MODE=report V=1 Please check for false positives in the output before submitting a patch. When using "patch" mode, carefully review the patch before submitting it. Processing badzero.cocci with option(s) "" Message example to submit a patch: Compare pointer-typed values to NULL rather than 0 The semantic patch that makes this report is available in scripts/coccinelle/null/badzero.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Semantic patch information: This makes an effort to choose between !x and x == NULL. !x is used if it has previously been used with the function used to initialize x. This relies on type information. More type information can be obtained using the option -all_includes and the option -I to specify an include path. Running (4 in parallel): /usr/local/bin/spatch -D report --no-show-diff --very-quiet --cocci-file /home/himanshu/zephyr/scripts/coccinelle/null/badzero.cocci --dir /home/himanshu/zephyr --jobs 4 --chunksize 1 /home/himanshu/zephyr/tests/crypto/ctr_prng/src/ctr_prng.c:304:20-21: WARNING comparing pointer to 0 /home/himanshu/zephyr/tests/crypto/ctr_prng/src/ctr_prng.c:310:18-19: WARNING comparing pointer to 0 /home/himanshu/zephyr/tests/crypto/ctr_prng/src/ctr_prng.c:316:18-19: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c:1245:22-23: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c:1522:17-18: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c:1522:38-39: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:219:6-7: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:219:20-21: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:225:7-8: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:129:5-6: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:140:6-7: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:140:20-21: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:175:5-6: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:187:6-7: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:274:5-6: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:76:5-6: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c:102:6-7: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c:2350:23-24: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c:2434:23-24: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c:2438:21-22: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c:2442:19-20: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c:2472:23-24: WARNING comparing pointer to 0 /home/himanshu/zephyr/samples/mpu/mpu_stack_guard_test/src/main.c:48:14-15: WARNING comparing pointer to 0 /home/himanshu/zephyr/lib/libc/minimal/source/stdlib/strtol.c:116:15-16: WARNING comparing pointer to 0 /home/himanshu/zephyr/lib/libc/minimal/source/stdlib/strtoul.c:95:15-16: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c:1245:22-23: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c:1522:17-18: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c:1522:38-39: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c:253:15-16: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c:263:14-15: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c:385:15-16: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c:395:14-15: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c:120:15-16: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c:130:14-15: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f0xx/drivers/src/stm32f0xx_hal_tim.c:399:17-18: WARNING comparing pointer to 0 /home/himanshu/zephyr/samples/basic/threads/src/main.c:62:29-30: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c:480:17-18: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c:3890:23-24: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c:3665:23-24: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c:2843:20-21: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c:2843:37-38: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c:1958:17-18: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:799:16-17: WARNING comparing pointer to 0, suggest !E /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:9066:24-25: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:8878:22-23: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:4011:25-26: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:799:16-17: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:3388:34-35: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:2805:27-28: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:2876:26-27: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:10561:28-29: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:8766:28-29: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c:8769:29-30: WARNING comparing pointer to 0 /home/himanshu/zephyr/subsys/settings/src/settings.c:298:14-15: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/drivers/net/wifi/source/netapp.c:1294:28-29: WARNING comparing pointer to 0 /home/himanshu/zephyr/ext/lib/crypto/mbedtls/library/ecp.c:1332:17-18: WARNING comparing pointer to 0 himanshu@himanshu-Vostro-3559:~/zephyr$ make coccicheck MODE=patch V=1 Please check for false positives in the output before submitting a patch. When using "patch" mode, carefully review the patch before submitting it. Processing badzero.cocci with option(s) "" Message example to submit a patch: Compare pointer-typed values to NULL rather than 0 The semantic patch that makes this change is available in scripts/coccinelle/null/badzero.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Semantic patch information: This makes an effort to choose between !x and x == NULL. !x is used if it has previously been used with the function used to initialize x. This relies on type information. More type information can be obtained using the option -all_includes and the option -I to specify an include path. Running (4 in parallel): /usr/local/bin/spatch -D patch --very-quiet --cocci-file /home/himanshu/zephyr/scripts/coccinelle/null/badzero.cocci --dir /home/himanshu/zephyr --jobs 4 --chunksize 1 diff -u -p a/ext/hal/st/stm32cube/stm32f0xx/drivers/src/stm32f0xx_hal_tim.c b/ext/hal/st/stm32cube/stm32f0xx/drivers/src/stm32f0xx_hal_tim.c --- a/ext/hal/st/stm32cube/stm32f0xx/drivers/src/stm32f0xx_hal_tim.c +++ b/ext/hal/st/stm32cube/stm32f0xx/drivers/src/stm32f0xx_hal_tim.c @@ -396,7 +396,7 @@ HAL_StatusTypeDef HAL_TIM_Base_Start_DMA } else if((htim->State == HAL_TIM_STATE_READY)) { - if((pData == 0 ) && (Length > 0)) + if((pData == NULL ) && (Length > 0)) { return HAL_ERROR; } diff -u -p a/ext/lib/crypto/mbedtls/library/ecp.c b/ext/lib/crypto/mbedtls/library/ecp.c --- a/ext/lib/crypto/mbedtls/library/ecp.c +++ b/ext/lib/crypto/mbedtls/library/ecp.c @@ -1329,7 +1329,7 @@ static int ecp_mul_comb_core( const mbed i = d; MBEDTLS_MPI_CHK( ecp_select_comb( grp, R, T, t_len, x[i] ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &R->Z, 1 ) ); - if( f_rng != 0 ) + if( f_rng != NULL ) MBEDTLS_MPI_CHK( ecp_randomize_jac( grp, R, f_rng, p_rng ) ); while( i-- != 0 ) diff -u -p a/ext/lib/crypto/tinycrypt/source/ctr_prng.c b/ext/lib/crypto/tinycrypt/source/ctr_prng.c --- a/ext/lib/crypto/tinycrypt/source/ctr_prng.c +++ b/ext/lib/crypto/tinycrypt/source/ctr_prng.c @@ -73,7 +73,7 @@ static void arrInc(uint8_t arr[], unsign */ static void tc_ctr_prng_update(TCCtrPrng_t * const ctx, uint8_t const * const providedData) { - if (0 != ctx) { + if (NULL != ctx) { /* 10.2.1.2 step 1 */ uint8_t temp[TC_AES_KEY_SIZE + TC_AES_BLOCK_SIZE]; unsigned int len = 0U; @@ -99,7 +99,7 @@ static void tc_ctr_prng_update(TCCtrPrng } /* 10.2.1.2 step 4 */ - if (0 != providedData) { + if (NULL != providedData) { unsigned int i; for (i = 0U; i < sizeof temp; i++) { temp[i] ^= providedData[i]; @@ -126,7 +126,7 @@ int tc_ctr_prng_init(TCCtrPrng_t * const uint8_t seed_material[TC_AES_KEY_SIZE + TC_AES_BLOCK_SIZE]; uint8_t zeroArr[TC_AES_BLOCK_SIZE] = {0U}; - if (0 != personalization) { + if (NULL != personalization) { /* 10.2.1.3.1 step 1 */ unsigned int len = pLen; if (len > sizeof personalization_buf) { @@ -137,7 +137,7 @@ int tc_ctr_prng_init(TCCtrPrng_t * const memcpy(personalization_buf, personalization, len); } - if ((0 != ctx) && (0 != entropy) && (entropyLen >= sizeof seed_material)) { + if ((NULL != ctx) && (NULL != entropy) && (entropyLen >= sizeof seed_material)) { /* 10.2.1.3.1 step 3 */ memcpy(seed_material, entropy, sizeof seed_material); for (i = 0U; i < sizeof seed_material; i++) { @@ -172,7 +172,7 @@ int tc_ctr_prng_reseed(TCCtrPrng_t * con uint8_t additional_input_buf[TC_AES_KEY_SIZE + TC_AES_BLOCK_SIZE] = {0U}; uint8_t seed_material[TC_AES_KEY_SIZE + TC_AES_BLOCK_SIZE]; - if (0 != additional_input) { + if (NULL != additional_input) { /* 10.2.1.4.1 step 1 */ unsigned int len = additionallen; if (len > sizeof additional_input_buf) { @@ -184,7 +184,7 @@ int tc_ctr_prng_reseed(TCCtrPrng_t * con } unsigned int seedlen = (unsigned int)TC_AES_KEY_SIZE + (unsigned int)TC_AES_BLOCK_SIZE; - if ((0 != ctx) && (entropyLen >= seedlen)) { + if ((NULL != ctx) && (entropyLen >= seedlen)) { /* 10.2.1.4.1 step 3 */ memcpy(seed_material, entropy, sizeof seed_material); for (i = 0U; i < sizeof seed_material; i++) { @@ -216,13 +216,13 @@ int tc_ctr_prng_generate(TCCtrPrng_t * c unsigned int result = TC_CRYPTO_FAIL; - if ((0 != ctx) && (0 != out) && (outlen < MAX_BYTES_PER_REQ)) { + if ((NULL != ctx) && (NULL != out) && (outlen < MAX_BYTES_PER_REQ)) { /* 10.2.1.5.1 step 1 */ if (ctx->reseedCount > MAX_REQS_BEFORE_RESEED) { result = TC_CTR_PRNG_RESEED_REQ; } else { uint8_t additional_input_buf[TC_AES_KEY_SIZE + TC_AES_BLOCK_SIZE] = {0U}; - if (0 != additional_input) { + if (NULL != additional_input) { /* 10.2.1.5.1 step 2 */ unsigned int len = additionallen; if (len > sizeof additional_input_buf) { @@ -271,7 +271,7 @@ int tc_ctr_prng_generate(TCCtrPrng_t * c void tc_ctr_prng_uninstantiate(TCCtrPrng_t * const ctx) { - if (0 != ctx) { + if (NULL != ctx) { memset(ctx->key.words, 0x00, sizeof ctx->key.words); memset(ctx->V, 0x00, sizeof ctx->V); ctx->reseedCount = 0U; diff -u -p a/samples/mpu/mpu_stack_guard_test/src/main.c b/samples/mpu/mpu_stack_guard_test/src/main.c --- a/samples/mpu/mpu_stack_guard_test/src/main.c +++ b/samples/mpu/mpu_stack_guard_test/src/main.c @@ -45,7 +45,7 @@ u32_t recursive_loop(u32_t counter, int } } counter++; - if (dummy == 0) + if (dummy == NULL) return counter; return recursive_loop(counter, num, dummy) +recursive_loop(counter, num, dummy); diff -u -p a/samples/basic/threads/src/main.c b/samples/basic/threads/src/main.c --- a/samples/basic/threads/src/main.c +++ b/samples/basic/threads/src/main.c @@ -59,7 +59,7 @@ void blink(const char *port, u32_t sleep size_t size = sizeof(struct printk_data_t); char *mem_ptr = k_malloc(size); - __ASSERT_NO_MSG(mem_ptr != 0); + __ASSERT_NO_MSG(mem_ptr != NULL); memcpy(mem_ptr, &tx_data, size); diff -u -p a/lib/libc/minimal/source/stdlib/strtol.c b/lib/libc/minimal/source/stdlib/strtol.c --- a/lib/libc/minimal/source/stdlib/strtol.c +++ b/lib/libc/minimal/source/stdlib/strtol.c @@ -113,7 +113,7 @@ long strtol(const char *nptr, char **end errno = ERANGE; } else if (neg) acc = -acc; - if (endptr != 0) + if (endptr != NULL) *endptr = (char *)(any ? s - 1 : nptr); return acc; } diff -u -p a/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c b/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c --- a/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c +++ b/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c @@ -1242,7 +1242,7 @@ status_t TRNG_GetDefaultConfig(trng_conf { status_t result; - if (userConfig != 0) + if (userConfig != NULL) { userConfig->lock = TRNG_USER_CONFIG_DEFAULT_LOCK; userConfig->clockMode = kTRNG_ClockModeRingOscillator; @@ -1519,7 +1519,7 @@ status_t TRNG_Init(TRNG_Type *base, cons status_t result; /* Check input parameters.*/ - if ((base != 0) && (userConfig != 0)) + if ((base != NULL) && (userConfig != NULL)) { #if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) /* Enable the clock gate. */ diff -u -p a/ext/hal/ti/simplelink/source/ti/drivers/net/wifi/source/netapp.c b/ext/hal/ti/simplelink/source/ti/drivers/net/wifi/source/netapp.c --- a/ext/hal/ti/simplelink/source/ti/drivers/net/wifi/source/netapp.c +++ b/ext/hal/ti/simplelink/source/ti/drivers/net/wifi/source/netapp.c @@ -1291,7 +1291,7 @@ _SlReturnVal_t sl_NetAppRecv( _u16 Handl _SlArgsData_t pArgsData; /* Validate input arguments */ - if ((NULL == pData) || (0==DataLen)) + if ((NULL == pData) || (NULL==DataLen)) { return SL_ERROR_BSD_EINVAL; } diff -u -p a/subsys/bluetooth/controller/ll_sw/ctrl.c b/subsys/bluetooth/controller/ll_sw/ctrl.c --- a/subsys/bluetooth/controller/ll_sw/ctrl.c +++ b/subsys/bluetooth/controller/ll_sw/ctrl.c @@ -796,7 +796,7 @@ static u32_t isr_rx_adv_sr_report(struct u8_t pdu_len; node_rx = packet_rx_reserve_get(3); - if (node_rx == 0) { + if (!node_rx) { return 1; } @@ -2802,7 +2802,7 @@ isr_rx_conn_pkt_ctrl(struct radio_pdu_no conn->llcp_conn_param.ack--; /* set mutex */ - if (_radio.conn_upd == 0) { + if (_radio.conn_upd == NULL) { _radio.conn_upd = conn; } } @@ -2873,7 +2873,7 @@ isr_rx_conn_pkt_ctrl(struct radio_pdu_no conn->llcp_conn_param.ack--; /* set mutex */ - if (_radio.conn_upd == 0) { + if (_radio.conn_upd == NULL) { _radio.conn_upd = conn; } } else { @@ -3385,7 +3385,7 @@ isr_rx_conn_pkt(struct radio_pdu_node_rx /* check so that we will NEVER use the rx buffer reserved for empty * packet and internal control enqueue */ - (packet_rx_reserve_get(3) != 0) && + (packet_rx_reserve_get(3) != NULL) && ((_radio.fc_ena == 0) || ((_radio.link_rx_head == _radio.link_rx_tail) && (_radio.fc_req == _radio.fc_ack)) || @@ -4008,7 +4008,7 @@ static inline void isr_close_conn(void) u8_t force; /* Local initiated terminate happened */ - if (_radio.conn_curr == 0) { + if (_radio.conn_curr == NULL) { return; } @@ -8763,10 +8763,10 @@ static void packet_tx_enqueue(u8_t max) pdu_data_q_tx->handle); if (conn->handle == pdu_data_q_tx->handle) { - if (conn->pkt_tx_data == 0) { + if (conn->pkt_tx_data == NULL) { conn->pkt_tx_data = node_tx_new; - if (conn->pkt_tx_head == 0) { + if (conn->pkt_tx_head == NULL) { conn->pkt_tx_head = node_tx_new; conn->pkt_tx_last = NULL; } @@ -8875,7 +8875,7 @@ static void ctrl_tx_enqueue(struct conne } /* Update last pointer if ctrl added at end of tx list */ - if (node_tx->next == 0) { + if (node_tx->next == NULL) { conn->pkt_tx_last = node_tx; } } @@ -9063,7 +9063,7 @@ static u32_t conn_update(struct connecti /* set mutex, if only not already set. As a master the mutex shall * be set, but a slave we accept it as new 'set' of mutex. */ - if (_radio.conn_upd == 0) { + if (_radio.conn_upd == NULL) { LL_ASSERT(conn->role); _radio.conn_upd = conn; @@ -10558,7 +10558,7 @@ u32_t ll_connect_disable(void) { u32_t status; - if (_radio.scanner.conn == 0) { + if (_radio.scanner.conn == NULL) { return BT_HCI_ERR_CMD_DISALLOWED; } diff -u -p a/tests/crypto/ctr_prng/src/ctr_prng.c b/tests/crypto/ctr_prng/src/ctr_prng.c --- a/tests/crypto/ctr_prng/src/ctr_prng.c +++ b/tests/crypto/ctr_prng/src/ctr_prng.c @@ -301,19 +301,19 @@ static int test_prng_vector(struct prng_ ent_len = strlen(v->entropy) / 2; exp_len = strlen(v->expected) / 2; - if (v->personal != 0) { + if (v->personal != NULL) { personal = per; hex_str_to_num(personal, v->personal); plen = strlen(v->personal) / 2; } - if (v->extra1 != 0) { + if (v->extra1 != NULL) { extra1 = ai1; hex_str_to_num(extra1, v->extra1); extra1_len = strlen(v->extra1) / 2; } - if (v->extra2 != 0) { + if (v->extra2 != NULL) { extra2 = ai2; hex_str_to_num(extra2, v->extra2); extra2_len = strlen(v->extra2) / 2; diff -u -p a/lib/libc/minimal/source/stdlib/strtoul.c b/lib/libc/minimal/source/stdlib/strtoul.c --- a/lib/libc/minimal/source/stdlib/strtoul.c +++ b/lib/libc/minimal/source/stdlib/strtoul.c @@ -92,7 +92,7 @@ unsigned long strtoul(const char *nptr, errno = ERANGE; } else if (neg) acc = -acc; - if (endptr != 0) + if (endptr != NULL) *endptr = (char *)(any ? s - 1 : nptr); return acc; } diff -u -p a/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c b/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c --- a/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c +++ b/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c @@ -117,7 +117,7 @@ static long SPITransfer8(unsigned long u // // Check if output buffer pointer is 0 // - if(ucDout == 0) + if(ucDout == NULL) { ulOutIncr = 0; ulTxDummy = 0xFFFFFFFF; @@ -127,7 +127,7 @@ static long SPITransfer8(unsigned long u // // Check if input buffer pointer is 0 // - if(ucDin == 0) + if(ucDin == NULL) { ulInIncr = 0; ucDin = (unsigned char *)&ulRxDummy; @@ -250,7 +250,7 @@ static long SPITransfer16(unsigned long // // Check if output buffer pointer is 0 // - if(usDout == 0) + if(usDout == NULL) { ulOutIncr = 0; ulTxDummy = 0xFFFFFFFF; @@ -260,7 +260,7 @@ static long SPITransfer16(unsigned long // // Check if input buffer pointer is 0 // - if(usDin == 0) + if(usDin == NULL) { ulInIncr = 0; usDin = (unsigned short *)&ulRxDummy; @@ -382,7 +382,7 @@ static long SPITransfer32(unsigned long // // Check if output buffer pointer is 0 // - if(ulDout == 0) + if(ulDout == NULL) { ulOutIncr = 0; ulTxDummy = 0xFFFFFFFF; @@ -392,7 +392,7 @@ static long SPITransfer32(unsigned long // // Check if input buffer pointer is 0 // - if(ulDin == 0) + if(ulDin == NULL) { ulInIncr = 0; ulDin = &ulRxDummy; diff -u -p a/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c b/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c --- a/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c +++ b/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c @@ -477,7 +477,7 @@ HAL_StatusTypeDef HAL_TIM_Base_Start_DMA } else if((htim->State == HAL_TIM_STATE_READY)) { - if((pData == 0 ) && (Length > 0)) + if((pData == NULL ) && (Length > 0)) { return HAL_ERROR; } @@ -1955,7 +1955,7 @@ HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(T } else if((htim->State == HAL_TIM_STATE_READY)) { - if((pData == 0 ) && (Length > 0)) + if((pData == NULL ) && (Length > 0)) { return HAL_ERROR; } @@ -2840,7 +2840,7 @@ HAL_StatusTypeDef HAL_TIM_Encoder_Start_ } else if((htim->State == HAL_TIM_STATE_READY)) { - if((((pData1 == 0) || (pData2 == 0) )) && (Length > 0)) + if((((pData1 == NULL) || (pData2 == NULL) )) && (Length > 0)) { return HAL_ERROR; } @@ -3662,7 +3662,7 @@ HAL_StatusTypeDef HAL_TIM_DMABurst_Write } else if((htim->State == HAL_TIM_STATE_READY)) { - if((BurstBuffer == 0 ) && (BurstLength > 0)) + if((BurstBuffer == NULL ) && (BurstLength > 0)) { return HAL_ERROR; } @@ -3887,7 +3887,7 @@ HAL_StatusTypeDef HAL_TIM_DMABurst_ReadS } else if((htim->State == HAL_TIM_STATE_READY)) { - if((BurstBuffer == 0 ) && (BurstLength > 0)) + if((BurstBuffer == NULL ) && (BurstLength > 0)) { return HAL_ERROR; } diff -u -p a/subsys/settings/src/settings.c b/subsys/settings/src/settings.c --- a/subsys/settings/src/settings.c +++ b/subsys/settings/src/settings.c @@ -295,7 +295,7 @@ static s64_t dec_to_s64(char *p_str, cha p_str++; } - if (e_ptr != 0) + if (e_ptr != NULL) *e_ptr = p_str; if (neg) { diff -u -p a/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c b/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c --- a/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c +++ b/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c @@ -1242,7 +1242,7 @@ status_t TRNG_GetDefaultConfig(trng_conf { status_t result; - if (userConfig != 0) + if (userConfig != NULL) { userConfig->lock = TRNG_USER_CONFIG_DEFAULT_LOCK; userConfig->clockMode = kTRNG_ClockModeRingOscillator; @@ -1519,7 +1519,7 @@ status_t TRNG_Init(TRNG_Type *base, cons status_t result; /* Check input parameters.*/ - if ((base != 0) && (userConfig != 0)) + if ((base != NULL) && (userConfig != NULL)) { #if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) /* Enable the clock gate. */ diff -u -p a/ext/debug/segger/systemview/SEGGER_SYSVIEW.c b/ext/debug/segger/systemview/SEGGER_SYSVIEW.c --- a/ext/debug/segger/systemview/SEGGER_SYSVIEW.c +++ b/ext/debug/segger/systemview/SEGGER_SYSVIEW.c @@ -2347,7 +2347,7 @@ U32 SEGGER_SYSVIEW_ShrinkId(U32 Id) { */ void SEGGER_SYSVIEW_RegisterModule(SEGGER_SYSVIEW_MODULE* pModule) { SEGGER_SYSVIEW_LOCK(); - if (_pFirstModule == 0) { + if (_pFirstModule == NULL) { // // No module registered, yet. // Start list with new module. @@ -2431,15 +2431,15 @@ void SEGGER_SYSVIEW_SendModule(U8 Module SEGGER_SYSVIEW_MODULE* pModule; U32 n; - if (_pFirstModule != 0) { + if (_pFirstModule != NULL) { pModule = _pFirstModule; for (n = 0; n < ModuleId; n++) { pModule = pModule->pNext; - if (pModule == 0) { + if (pModule == NULL) { break; } } - if (pModule != 0) { + if (pModule != NULL) { U8* pPayload; U8* pPayloadStart; RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 2 * SEGGER_SYSVIEW_QUANTA_U32 + 1 + SEGGER_SYSVIEW_MAX_STRING_LEN); @@ -2469,7 +2469,7 @@ void SEGGER_SYSVIEW_SendModule(U8 Module void SEGGER_SYSVIEW_SendModuleDescription(void) { SEGGER_SYSVIEW_MODULE* pModule; - if (_pFirstModule != 0) { + if (_pFirstModule != NULL) { pModule = _pFirstModule; do { if (pModule->pfSendModuleDesc) { himanshu@himanshu-Vostro-3559:~/zephyr$ make coccicheck MODE=org V=1 Please check for false positives in the output before submitting a patch. When using "patch" mode, carefully review the patch before submitting it. Processing badzero.cocci with option(s) "" Message example to submit a patch: Compare pointer-typed values to NULL rather than 0 The semantic patch that makes this Org report is available in scripts/coccinelle/null/badzero.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Semantic patch information: This makes an effort to choose between !x and x == NULL. !x is used if it has previously been used with the function used to initialize x. This relies on type information. More type information can be obtained using the option -all_includes and the option -I to specify an include path. Running (4 in parallel): /usr/local/bin/spatch -D org --no-show-diff --very-quiet --cocci-file /home/himanshu/zephyr/scripts/coccinelle/null/badzero.cocci --dir /home/himanshu/zephyr --jobs 4 --chunksize 1 * TODO [[view:/home/himanshu/zephyr/tests/crypto/ctr_prng/src/ctr_prng.c::face=ovl-face1::linb=304::colb=20::cole=21][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/tests/crypto/ctr_prng/src/ctr_prng.c::face=ovl-face1::linb=310::colb=18::cole=19][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/tests/crypto/ctr_prng/src/ctr_prng.c::face=ovl-face1::linb=316::colb=18::cole=19][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c::face=ovl-face1::linb=1245::colb=22::cole=23][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c::face=ovl-face1::linb=1522::colb=17::cole=18][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/kinetis/fsl_trng.c::face=ovl-face1::linb=1522::colb=38::cole=39][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c::face=ovl-face1::linb=1245::colb=22::cole=23][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c::face=ovl-face1::linb=1522::colb=17::cole=18][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/nxp/mcux/drivers/imx/fsl_trng.c::face=ovl-face1::linb=1522::colb=38::cole=39][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f0xx/drivers/src/stm32f0xx_hal_tim.c::face=ovl-face1::linb=399::colb=17::cole=18][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c::face=ovl-face1::linb=480::colb=17::cole=18][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c::face=ovl-face1::linb=3890::colb=23::cole=24][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c::face=ovl-face1::linb=3665::colb=23::cole=24][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c::face=ovl-face1::linb=2843::colb=20::cole=21][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c::face=ovl-face1::linb=2843::colb=37::cole=38][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/st/stm32cube/stm32f7xx/drivers/src/stm32f7xx_hal_tim.c::face=ovl-face1::linb=1958::colb=17::cole=18][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/lib/libc/minimal/source/stdlib/strtol.c::face=ovl-face1::linb=116::colb=15::cole=16][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/lib/libc/minimal/source/stdlib/strtoul.c::face=ovl-face1::linb=95::colb=15::cole=16][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c::face=ovl-face1::linb=253::colb=15::cole=16][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c::face=ovl-face1::linb=263::colb=14::cole=15][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c::face=ovl-face1::linb=385::colb=15::cole=16][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c::face=ovl-face1::linb=395::colb=14::cole=15][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c::face=ovl-face1::linb=120::colb=15::cole=16][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/devices/cc32xx/driverlib/spi.c::face=ovl-face1::linb=130::colb=14::cole=15][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/mbedtls/library/ecp.c::face=ovl-face1::linb=1332::colb=17::cole=18][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c::face=ovl-face1::linb=2350::colb=23::cole=24][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c::face=ovl-face1::linb=2434::colb=23::cole=24][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c::face=ovl-face1::linb=2438::colb=21::cole=22][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c::face=ovl-face1::linb=2442::colb=19::cole=20][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/debug/segger/systemview/SEGGER_SYSVIEW.c::face=ovl-face1::linb=2472::colb=23::cole=24][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/samples/basic/threads/src/main.c::face=ovl-face1::linb=62::colb=29::cole=30][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=799::colb=16::cole=17][WARNING comparing pointer to 0, suggest !E]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=9066::colb=24::cole=25][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=8878::colb=22::cole=23][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=4011::colb=25::cole=26][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=799::colb=16::cole=17][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=3388::colb=34::cole=35][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=2805::colb=27::cole=28][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=2876::colb=26::cole=27][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=10561::colb=28::cole=29][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=8766::colb=28::cole=29][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/bluetooth/controller/ll_sw/ctrl.c::face=ovl-face1::linb=8769::colb=29::cole=30][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/hal/ti/simplelink/source/ti/drivers/net/wifi/source/netapp.c::face=ovl-face1::linb=1294::colb=28::cole=29][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=219::colb=6::cole=7][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=219::colb=20::cole=21][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=225::colb=7::cole=8][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=129::colb=5::cole=6][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=140::colb=6::cole=7][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=140::colb=20::cole=21][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=175::colb=5::cole=6][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=187::colb=6::cole=7][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=274::colb=5::cole=6][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=76::colb=5::cole=6][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/ext/lib/crypto/tinycrypt/source/ctr_prng.c::face=ovl-face1::linb=102::colb=6::cole=7][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/samples/mpu/mpu_stack_guard_test/src/main.c::face=ovl-face1::linb=48::colb=14::cole=15][WARNING comparing pointer to 0]] * TODO [[view:/home/himanshu/zephyr/subsys/settings/src/settings.c::face=ovl-face1::linb=298::colb=14::cole=15][WARNING comparing pointer to 0]] himanshu@himanshu-Vostro-3559:~/zephyr$ make coccicheck MODE=patch V=1 M=./subsys/settings/src/settings.c Please check for false positives in the output before submitting a patch. When using "patch" mode, carefully review the patch before submitting it. Processing badzero.cocci with option(s) "" Message example to submit a patch: Compare pointer-typed values to NULL rather than 0 The semantic patch that makes this change is available in scripts/coccinelle/null/badzero.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Semantic patch information: This makes an effort to choose between !x and x == NULL. !x is used if it has previously been used with the function used to initialize x. This relies on type information. More type information can be obtained using the option -all_includes and the option -I to specify an include path. Running (4 in parallel): /usr/local/bin/spatch -D patch --very-quiet --cocci-file /home/himanshu/zephyr/scripts/coccinelle/null/badzero.cocci --patch /home/himanshu/zephyr --dir ./subsys/settings/src/settings.c --jobs 4 --chunksize 1 diff -u -p a/subsys/settings/src/settings.c b/subsys/settings/src/settings.c --- a/subsys/settings/src/settings.c +++ b/subsys/settings/src/settings.c @@ -295,7 +295,7 @@ static s64_t dec_to_s64(char *p_str, cha p_str++; } - if (e_ptr != 0) + if (e_ptr != NULL) *e_ptr = p_str; if (neg) { ------------------------------------------------------------------------------- Thanks -- Himanshu Jha Undergraduate Student Department of Electronics & Communication Guru Tegh Bahadur Institute of Technology |
|