Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Sep 2016 09:53:30 +0000
From:      Daniil Berendeev <pipfstarrd@openmailbox.org>
To:        freebsd-hackers@FreeBSD.org
Subject:   Multiple possible null-pointer dereferences
Message-ID:  <614a3aa7-a903-23f5-33b8-c367f22cd454@openmailbox.org>

next in thread | raw e-mail | index | archive | help
Hello, its cppcheck guy again.

I'm digging through error messages, and there are lots of them related
to null pointer dereferences. But I'm not sure if those should be
considered as bugs and fixed. Maybe I'm missing a point?

Here are some common examples of how it looks like:

1) First snippet:
static int dbd_freetds_end_transaction(apr_dbd_transaction_t *trans)
{
    int dummy;
    if (trans) { // <-- Here we check whether trans is a valid pointer
                 // skipped irrelevant code
    }

    // But here we dereference is without a fuss.
    return (trans->handle->err == SUCCEED) ? 0 : 1;
}

2) Second snippet:
static int dbd_oracle_end_transaction(apr_dbd_transaction_t *trans)
{
    int ret = 1;             /* no transaction is an error cond */
    sword status;

    // *** We dereference the pointer ***
    apr_dbd_t *handle = trans->handle;
    if (trans) { // <-- and check if it is valid after that, lol
    //...

3) Third snippet

	// *** Again, here we dereference the pointer ***
	assert(stab->n_type != N_FUN || (iidescp->ii_type != II_GFUN &&
	    iidescp->ii_type != II_SFUN) || scope == 0);
	//...
		if (scope && stab->n_type != N_PSYM) {
			if (iidescp) // <-- and here check if it's valid
				iidesc_free(iidescp, NULL);


And there are tons (973 to be precise) of examples like these above.
Should those be considered as bugs and be fixed, or they are fine?

-- 
Cheers~

PGP key fingerprint:
07B3 2177 3E27 BF41 DC65  CC95 BDA8 88F1 E9F9 CEEF

You can retrieve my public key at pgp.mit.edu.



-- 
Cheers~

PGP key fingerprint:
07B3 2177 3E27 BF41 DC65  CC95 BDA8 88F1 E9F9 CEEF

You can retrieve my public key at pgp.mit.edu.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?614a3aa7-a903-23f5-33b8-c367f22cd454>