Quellcode durchsuchen

[Fix] Fix crashes when socket write errors occur

tags/1.6.1
Vsevolod Stakhov vor 7 Jahren
Ursprung
Commit
34a8c93ce3
2 geänderte Dateien mit 7 neuen und 0 gelöschten Zeilen
  1. 3
    0
      contrib/librdns/resolver.c
  2. 4
    0
      contrib/librdns/util.c

+ 3
- 0
contrib/librdns/resolver.c Datei anzeigen

@@ -402,6 +402,8 @@ rdns_process_timer (void *arg)
if (!renew) {
req->async->del_timer (req->async->data,
req->async_event);
req->async_event = NULL;
HASH_DEL (req->io->requests, req);
}

/* We have not scheduled timeout actually due to send error */
@@ -480,6 +482,7 @@ rdns_process_retransmit (int fd, void *arg)

resolver->async->del_write (resolver->async->data,
req->async_event);
req->async_event = NULL;

r = rdns_send_request (req, fd, false);


+ 4
- 0
contrib/librdns/util.c Datei anzeigen

@@ -409,12 +409,16 @@ rdns_request_free (struct rdns_request *req)
req->async_event);
/* Remove from id hashes */
HASH_DEL (req->io->requests, req);
req->async_event = NULL;
}
else if (req->state == RDNS_REQUEST_WAIT_SEND) {
/* Remove retransmit event */
req->async->del_write (req->async->data,
req->async_event);
HASH_DEL (req->io->requests, req);
req->async_event = NULL;
}

}
#ifdef TWEETNACL
if (req->curve_plugin_data != NULL) {

Laden…
Abbrechen
Speichern