]> granicus.if.org Git - php/commitdiff
Fixed Bug #63581 Possible null dereference
authorRemi Collet <remi@php.net>
Wed, 28 Nov 2012 09:28:18 +0000 (10:28 +0100)
committerRemi Collet <remi@php.net>
Wed, 28 Nov 2012 09:28:18 +0000 (10:28 +0100)
Possible NULL dereference when trying to delete the single item
of a list (ack from fat).

This issues where found from by static code analysis tool and,
so, I can't provide any reproducer.

sapi/fpm/fpm/fpm_events.c

index d5f7483b4f17f9c495c7f09b8862f331e2bfa366..d5835f0f7ec23070fdefbbbd12493e84630897a0 100644 (file)
@@ -188,7 +188,9 @@ static int fpm_event_queue_del(struct fpm_event_queue_s **queue, struct fpm_even
                        }
                        if (q == *queue) {
                                *queue = q->next;
-                               (*queue)->prev = NULL;
+                               if (*queue) {
+                                       (*queue)->prev = NULL;
+                               }
                        }
 
                        /* ask the event module to remove the fd from its own queue */
@@ -432,7 +434,9 @@ void fpm_event_loop(int err) /* {{{ */
                                                }
                                                if (q == fpm_event_queue_timer) {
                                                        fpm_event_queue_timer = q->next;
-                                                       fpm_event_queue_timer->prev = NULL;
+                                                       if (fpm_event_queue_timer) {
+                                                               fpm_event_queue_timer->prev = NULL;
+                                                       }
                                                }
                                                q = q->next;
                                                free(q2);