davidmoreno / onion

C library to create simple HTTP servers and Web Applications.
http://www.coralbits.com/libonion/
Other
2.02k stars 252 forks source link

Remove null pointer dereferences from #300 #310

Open YggdrasiI opened 2 years ago

YggdrasiI commented 2 years ago

This commit resolves three null pointer dereferences mentioned by Bogdanisar in #300.

Comments about changes:

1) onion.c Add return statement if promotion to https had failed and set member variable only in !=NULL case.

2) Here, I'm unsure if my change is correct.

I assume that the NULL-check is using the wrong variable! First of all, a check of the bl variable is missing. This indicates that (bl == NULL) would be the correct check.

Moreover, the redis session probably should be deleted if the data dict is empty, too. Thus, I changed the line to if (onion_dict_count(data) == 0 || bl == NULL)

Other variants would be if (bl == NULL) if (data == NULL || bl == NULL )

3) poller.c: If added a NULL check because poller->head is initialized with NULL in onion_poller_new.