summaryrefslogtreecommitdiffstats
path: root/ctdb/lib/talloc/talloc.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2009-12-07 23:05:58 +1030
committerRusty Russell <rusty@rustcorp.com.au>2009-12-07 23:05:58 +1030
commit949803528d239ae04f82af44abbb1545b4d17fa6 (patch)
tree8c67bdb902bc51318162879cef0891702b954161 /ctdb/lib/talloc/talloc.c
parent066a791770c2cfa89850bfbbf6f714b9e6adc5b8 (diff)
downloadsamba-949803528d239ae04f82af44abbb1545b4d17fa6.tar.gz
samba-949803528d239ae04f82af44abbb1545b4d17fa6.tar.xz
samba-949803528d239ae04f82af44abbb1545b4d17fa6.zip
talloc: save errno over talloc_free
As we start to use errno more, it's a huge pain if talloc_free() can blatt it (esp. destructors). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (This used to be ctdb commit 76a0ca77feba14e1e1162c195ffbdf516e62aa4d)
Diffstat (limited to 'ctdb/lib/talloc/talloc.c')
-rw-r--r--ctdb/lib/talloc/talloc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ctdb/lib/talloc/talloc.c b/ctdb/lib/talloc/talloc.c
index b805c9725c..8e11a11218 100644
--- a/ctdb/lib/talloc/talloc.c
+++ b/ctdb/lib/talloc/talloc.c
@@ -746,7 +746,12 @@ void *talloc_named_const(const void *context, size_t size, const char *name)
*/
int talloc_free(void *ptr)
{
- return _talloc_free(ptr);
+ int ret, saved_errno;
+
+ saved_errno = errno;
+ ret = _talloc_free(ptr);
+ errno = saved_errno;
+ return ret;
}