]> granicus.if.org Git - pgbouncer/commitdiff
Fix some unchecked return values.
authorEuler Taveira <euler@timbira.com>
Thu, 30 Apr 2015 15:20:20 +0000 (12:20 -0300)
committerEuler Taveira <euler@timbira.com>
Thu, 30 Apr 2015 15:30:49 +0000 (12:30 -0300)
Some event_add() return value were not checked. Either test the output
or ignore it with (void). Adopt the former because it give us a chance
to expose a bug.

While in it, be consistent with the log messages.

Spotted by Coverity.

src/dnslookup.c
src/sbuf.c

index 53ae3440c6e14338e25f43fa8aef69911ae20d05..ce3bbbebb68f5a5deb41b92606bcb9374f5b03db 100644 (file)
@@ -554,6 +554,7 @@ static bool impl_init(struct DNSContext *ctx)
        int fd;
        struct dns_ctx *dctx;
        struct UdnsMeta *udns;
+       int err;
 
        dns_init(NULL, 0);
 
@@ -574,7 +575,9 @@ static bool impl_init(struct DNSContext *ctx)
                return false;
        }
        event_set(&udns->ev_io, fd, EV_READ | EV_PERSIST, udns_io_cb, ctx);
-       event_add(&udns->ev_io, NULL);
+       err = event_add(&udns->ev_io, NULL);
+       if (err < 0)
+               log_warning("impl_init: event_add failed: %s", strerror(errno));
 
        /* timer setup */
        evtimer_set(&udns->ev_timer, udns_timer_cb, ctx);
@@ -868,7 +871,8 @@ re_set:
        xfd->wait = new_wait;
        if (new_wait) {
                event_set(&xfd->ev, sock, new_wait | EV_PERSIST, xares_fd_cb, xfd);
-               event_add(&xfd->ev, NULL);
+               if (event_add(&xfd->ev, NULL) < 0)
+                       log_warning("adns: event_add failed: %s", strerror(errno));
        } else {
                xfd->in_use = 0;
        }
@@ -933,7 +937,8 @@ static void impl_per_loop(struct DNSContext *ctx)
 
        tvp = ares_timeout(meta->chan, NULL, &tv);
        if (tvp != NULL) {
-               event_add(&meta->ev_timer, tvp);
+               if (event_add(&meta->ev_timer, tvp) < 0)
+                       log_warning("impl_per_loop: event_add failed: %s", strerror(errno));
                meta->timer_active = true;
        }
 
index b9559d53626461eebaf2a15d5128b4cfe88cfcc6..fad9a33fc3a6f4a8b8b8cb794fa23b2dd34ee21e 100644 (file)
@@ -340,7 +340,7 @@ static bool sbuf_wait_for_data(SBuf *sbuf)
        event_set(&sbuf->ev, sbuf->sock, EV_READ | EV_PERSIST, sbuf_recv_cb, sbuf);
        err = event_add(&sbuf->ev, NULL);
        if (err < 0) {
-               log_warning("sbuf_wait_for_data: event_add: %s", strerror(errno));
+               log_warning("sbuf_wait_for_data: event_add failed: %s", strerror(errno));
                return false;
        }
        sbuf->wait_type = W_RECV;