We have here an issue :

-list is not checked in gwlist_delete_equal()
So if dict_get(conn_pool, key) returns NULL the process panic.



diff -rau /gateway-cvs/gwlib/http.c /gateway/gwlib/http.c
--- /gateway-cvs/gwlib/http.c   2006-04-01 19:45:13.000000000 +0200
+++ /gateway/gwlib/http.c       2006-06-26 20:08:53.000000000 +0200
@@ -848,7 +848,7 @@
         List *list;
         mutex_lock(conn_pool_lock);
         list = dict_get(conn_pool, key);
-        if (gwlist_delete_equal(list, conn) > 0) {
+        if (list != NULL && gwlist_delete_equal(list, conn) > 0) {
             /*
              * ok, connection was still within pool. So it's
              * safe to destroy this connection.



--
Telemaque - NICE - (FR)
Service Technique - Developpement
http://www.telemaque.fr/
[EMAIL PROTECTED]
Tel : +33 4 93 97 71 64 (fax 68)
diff -rau /gateway-cvs/gwlib/http.c /gateway/gwlib/http.c
--- /gateway-cvs/gwlib/http.c   2006-04-01 19:45:13.000000000 +0200
+++ /gateway/gwlib/http.c       2006-06-26 20:08:53.000000000 +0200
@@ -848,7 +848,7 @@
         List *list;
         mutex_lock(conn_pool_lock);
         list = dict_get(conn_pool, key);
-        if (gwlist_delete_equal(list, conn) > 0) {
+        if (list != NULL && gwlist_delete_equal(list, conn) > 0) {
             /*
              * ok, connection was still within pool. So it's
              * safe to destroy this connection.
_______________________________________________
devel mailing list
[email protected]
http://www.kannel.org/mailman/listinfo/devel

Reply via email to