summaryrefslogtreecommitdiffstats
path: root/source/nsswitch/wb_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/nsswitch/wb_common.c')
-rw-r--r--source/nsswitch/wb_common.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/source/nsswitch/wb_common.c b/source/nsswitch/wb_common.c
index 082f3cae8f7..d3feaeb4504 100644
--- a/source/nsswitch/wb_common.c
+++ b/source/nsswitch/wb_common.c
@@ -31,6 +31,16 @@
int winbindd_fd = -1; /* fd for winbindd socket */
static char *excluded_domain;
+/* Free a response structure */
+
+void free_response(struct winbindd_response *response)
+{
+ /* Free any allocated extra_data */
+
+ if (response)
+ SAFE_FREE(response->extra_data);
+}
+
/*
smbd needs to be able to exclude lookups for its own domain
*/
@@ -290,6 +300,7 @@ int read_reply(struct winbindd_response *response)
if ((result2 = read_sock(response->extra_data, extra_data_len))
== -1) {
+ free_response(response);
return -1;
}
}
@@ -299,16 +310,6 @@ int read_reply(struct winbindd_response *response)
return result1 + result2;
}
-/* Free a response structure */
-
-void free_response(struct winbindd_response *response)
-{
- /* Free any allocated extra_data */
-
- if (response)
- SAFE_FREE(response->extra_data);
-}
-
/*
* send simple types of requests
*/