From: Michael Tremer Date: Mon, 18 Jul 2022 08:24:32 +0000 (+0000) Subject: util: Store errno when running pakfire_rmtree() X-Git-Tag: 0.9.28~686 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20ca6aded5a4973650b6207e2bd1a45b7c8a0a8c;p=pakfire.git util: Store errno when running pakfire_rmtree() Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index 7bcc0d3e5..7d94f0fef 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -987,12 +987,19 @@ static int _unlink(const char* path, const struct stat* stat, int typeflag, stru } int pakfire_rmtree(const char* path, int flags) { + // Save errno + int saved_errno = errno; + + // Walk through the entire tree and unlink everything int r = nftw(path, _unlink, 64, flags|FTW_DEPTH|FTW_PHYS); // Ignore if path didn't exist if (r < 0 && errno == ENOENT) r = 0; + // Restore errno + errno = saved_errno; + return r; }