Skip to content

Commit d7cde09

Browse files
committed
kvs: preserve errno in kvsroot_destroy()
Problem: The internal function kvsroot_destroy() does not preserve errno. Callers must do it themselves. This is not the common code pattern in flux-core. Have kvsroot_destroy() preserve errno. Remove "saving errno" that callers are doing.
1 parent e4abf96 commit d7cde09

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/modules/kvs/kvsroot.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ static void kvsroot_destroy (void *data)
8282
{
8383
if (data) {
8484
struct kvsroot *root = data;
85+
int save_errno = errno;
8586
if (root->ns_name)
8687
free (root->ns_name);
8788
if (root->ktm)
@@ -93,6 +94,7 @@ static void kvsroot_destroy (void *data)
9394
if (root->setroot_queue)
9495
flux_msglist_destroy (root->setroot_queue);
9596
free (data);
97+
errno = save_errno;
9698
}
9799
}
98100

@@ -166,9 +168,7 @@ struct kvsroot *kvsroot_mgr_create_root (kvsroot_mgr_t *krm,
166168
return root;
167169

168170
error:
169-
save_errnum = errno;
170171
kvsroot_destroy (root);
171-
errno = save_errnum;
172172
return NULL;
173173
}
174174

0 commit comments

Comments
 (0)