Blob Blame History Raw
It's just bad to de-couple state and NULL ptrs.

diff -Nur audacious-plugins-2.4-alpha1-orig/src/neon/neon.c audacious-plugins-2.4-alpha1/src/neon/neon.c
--- audacious-plugins-2.4-alpha1-orig/src/neon/neon.c	2010-06-08 16:00:01.000000000 +0200
+++ audacious-plugins-2.4-alpha1/src/neon/neon.c	2010-06-11 20:07:22.000000000 +0200
@@ -702,11 +702,13 @@
             return 0;
         } else if (-1 == ret) {
             ne_session_destroy(handle->session);
+            handle->session = NULL;
             return -1;
         }
 
         _DEBUG("<%p> Following redirect...", handle);
         ne_session_destroy(handle->session);
+        handle->session = NULL;
     }
 
     /*
@@ -878,7 +880,9 @@
     }
 
     _DEBUG("<%p> Destroying session", h);
-    ne_session_destroy(h->session);
+    if (NULL != h->session) {
+        ne_session_destroy(h->session);
+    }
 
     handle_free(h);
 
@@ -1270,7 +1274,10 @@
     if (NULL != h->request) {
         ne_request_destroy(h->request);
     }
-    ne_session_destroy(h->session);
+    if (NULL != h->session) {
+        ne_session_destroy(h->session);
+        h->session = NULL;
+    }
     reset_rb(&h->rb);
 
     if (0 != open_handle(h, newpos)) {