Welcome! Log In Create A New Profile

Advanced

[nginx] svn commit: r4422 - trunk/src/event

Anonymous User
January 30, 2012 06:14AM
Author: mdounin
Date: 2012-01-30 11:12:52 +0000 (Mon, 30 Jan 2012)
New Revision: 4422

Log:
Fixed error handling in ngx_event_connect_peer().

Previously if ngx_add_event() failed a connection was freed two times (once
in the ngx_event_connect_peer(), and again by a caller) as pc->connection was
left set. Fix is to always use ngx_close_connection() to close connection
properly and set pc->connection to NULL on errors.

Patch by Piotr Sikora.


Modified:
trunk/src/event/ngx_event_connect.c

Modified: trunk/src/event/ngx_event_connect.c
===================================================================
--- trunk/src/event/ngx_event_connect.c 2012-01-30 10:17:56 UTC (rev 4421)
+++ trunk/src/event/ngx_event_connect.c 2012-01-30 11:12:52 UTC (rev 4422)
@@ -160,6 +160,9 @@
ngx_log_error(level, c->log, err, "connect() to %V failed",
pc->name);

+ ngx_close_connection(c);
+ pc->connection = NULL;
+
return NGX_DECLINED;
}
}
@@ -241,13 +244,9 @@

failed:

- ngx_free_connection(c);
+ ngx_close_connection(c);
+ pc->connection = NULL;

- if (ngx_close_socket(s) == -1) {
- ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,
- ngx_close_socket_n " failed");
- }
-
return NGX_ERROR;
}


_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] svn commit: r4422 - trunk/src/event

Anonymous User 1040 January 30, 2012 06:14AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 314
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready