summaryrefslogtreecommitdiffstats
path: root/src/plug-nis.c
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin@redhat.com>2011-01-03 14:57:46 -0500
committerNalin Dahyabhai <nalin@redhat.com>2011-01-03 14:57:46 -0500
commit59ab2fd85498db22c97f6b4ff77e7bac1931506e (patch)
tree1ffb769b83f59816bfcfaa896892c47df201b0b8 /src/plug-nis.c
parent25e0323d1c571c446c1b1daeb54654f446f7aec2 (diff)
downloadslapi-nis-59ab2fd85498db22c97f6b4ff77e7bac1931506e.tar.gz
slapi-nis-59ab2fd85498db22c97f6b4ff77e7bac1931506e.tar.xz
slapi-nis-59ab2fd85498db22c97f6b4ff77e7bac1931506e.zip
- don't crash if we hit out-of-memory on startup (defect #10096)
Diffstat (limited to 'src/plug-nis.c')
-rw-r--r--src/plug-nis.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/plug-nis.c b/src/plug-nis.c
index e6edf4a..f008a06 100644
--- a/src/plug-nis.c
+++ b/src/plug-nis.c
@@ -419,17 +419,19 @@ plugin_state_init(Slapi_PBlock *pb, struct plugin_state **lstate)
*lstate = state;
return 0;
failed:
- for (i = 0; i < state->n_listeners; i++) {
- close(state->listener[i].fd);
- state->listener[i].fd = -1;
- }
- if (state->pmap_client_socket != -1) {
- close(state->pmap_client_socket);
- state->pmap_client_socket = -1;
+ if (state != NULL) {
+ err = errno;
+ for (i = 0; i < state->n_listeners; i++) {
+ close(state->listener[i].fd);
+ state->listener[i].fd = -1;
+ }
+ if (state->pmap_client_socket != -1) {
+ close(state->pmap_client_socket);
+ state->pmap_client_socket = -1;
+ }
+ free(state);
+ errno = err;
}
- err = errno;
- free(state);
- errno = err;
return -1;
}