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 tool
with four different modes:

* 'patch' proposes a fix, when possible.
* 'report' generates a list in the following format:
file:line:column-column: message
* 'context' highlights lines of interest and their context in a
diff-like style. Lines of interest are indicated with '-'.
* 'org' generates a report in the Org mode format of Emacs.

Cc: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Himanshu Jha <himanshujha199640@gmail.com>
---
Assumptions:
-----------

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@systeme.lip6.fr

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

Join devel@lists.zephyrproject.org to automatically receive all group messages.