[PATCH] Remove redundant code

Alejandro Colomar alx@kernel.org
Fri Oct 10 15:51:13 GMT 2025


free(3) guarantees preservation of errno.

Signed-off-by: Alejandro Colomar <alx@kernel.org>
---

Hi!

While having a look at code implementing and using realloc(3), I found
some cases of dead code around free(3).  Here's some patch to remove it.

I've ran 'make check', to make sure there are no regressions.  Both
before and after this patch, I see

		=== Summary of results ===
      8 FAIL
   7000 PASS
     92 UNSUPPORTED
     16 XFAIL
      4 XPASS


Have a lovely day!
Alex

 hesiod/hesiod.c | 2 --
 io/ftw.c        | 7 -------
 2 files changed, 9 deletions(-)

diff --git a/hesiod/hesiod.c b/hesiod/hesiod.c
index fe61d0d565..0023d20ed2 100644
--- a/hesiod/hesiod.c
+++ b/hesiod/hesiod.c
@@ -135,12 +135,10 @@ hesiod_init(void **context) {
 void
 hesiod_end(void *context) {
 	struct hesiod_p *ctx = (struct hesiod_p *) context;
-	int save_errno = errno;
 
 	free(ctx->RHS);
 	free(ctx->LHS);
 	free(ctx);
-	__set_errno(save_errno);
 }
 
 /*
diff --git a/io/ftw.c b/io/ftw.c
index dce2e67f72..d6c53939d0 100644
--- a/io/ftw.c
+++ b/io/ftw.c
@@ -306,9 +306,7 @@ open_dir_stream (int *dfdp, struct ftw_data *data, struct dir_data *dirp)
 		  if (newp == NULL)
 		    {
 		      /* No more memory.  */
-		      int save_err = errno;
 		      free (buf);
-		      __set_errno (save_err);
 		      return -1;
 		    }
 		  buf = newp;
@@ -327,9 +325,7 @@ open_dir_stream (int *dfdp, struct ftw_data *data, struct dir_data *dirp)
 	  data->dirstreams[data->actdir]->content = content;
 	  if (content == NULL)
 	    {
-	      int save_err = errno;
 	      free (buf);
-	      __set_errno (save_err);
 	      result = -1;
 	    }
 	  else
@@ -571,7 +567,6 @@ fail:
     }
   else
     {
-      int save_err;
       char *runp = dir.content;
 
       while (result == 0 && *runp != '\0')
@@ -584,9 +579,7 @@ fail:
 	  runp = endp + 1;
 	}
 
-      save_err = errno;
       free (dir.content);
-      __set_errno (save_err);
     }
 
   if ((data->flags & FTW_ACTIONRETVAL) && result == FTW_SKIP_SIBLINGS)
-- 
2.51.0



More information about the Libc-alpha mailing list