Depending on the state of environment, running while saveenv; do true; done Can quickly lead to: saving environment could not open /dev/mmc2.barebox-environment: error 24 saveenv: error 24 Because the leaked file descriptors gobble up the 128 we have preallocated. Fix this. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- lib/libfile.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/libfile.c b/lib/libfile.c index b967232d198e..ebd1de3d8e4d 100644 --- a/lib/libfile.c +++ b/lib/libfile.c @@ -542,8 +542,10 @@ int compare_file(const char *f1, const char *f2) if (ret) goto err_out2; - if (s1.st_size != s2.st_size) - return 1; + if (s1.st_size != s2.st_size) { + ret = 1; + goto err_out2; + } buf1 = xmalloc(RW_BUF_SIZE); buf2 = xmalloc(RW_BUF_SIZE); -- 2.39.2