It's just bad to de-couple state and NULL ptrs.
diff -Nur audacious-plugins-fedora-2.2-neon1/src/neon/neon.c audacious-plugins-fedora-2.2-neon2/src/neon/neon.c
--- audacious-plugins-fedora-2.2-neon1/src/neon/neon.c 2010-01-25 09:46:23.000000000 +0100
+++ audacious-plugins-fedora-2.2-neon2/src/neon/neon.c 2010-01-25 09:51:17.000000000 +0100
@@ -727,11 +727,13 @@
_LEAVE 0;
} else if (-1 == ret) {
ne_session_destroy(handle->session);
+ handle->session = NULL;
_LEAVE -1;
}
_DEBUG("<%p> Following redirect...", handle);
ne_session_destroy(handle->session);
+ handle->session = NULL;
}
/*
@@ -945,7 +947,9 @@
}
_DEBUG("<%p> Destroying session", h);
- ne_session_destroy(h->session);
+ if (NULL != h->session) {
+ ne_session_destroy(h->session);
+ }
handle_free(h);
@@ -1359,7 +1363,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)) {