On 27/02/2023 11:36, ChuanGang Jiang wrote:
I found this by accident and then reproduce it through artificial mem pressure 
test.
And I update the patch as you said.

*lib/fts.c:return when malloc failed in function setup_dir()
---
  lib/fts.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/fts.c b/lib/fts.c
index 78584b2902..c2fa5ee8dc 100644
--- a/lib/fts.c
+++ b/lib/fts.c
@@ -979,7 +979,11 @@ next:   tmp = p;
                          }
                          free_dir(sp);
                          fts_load(sp, p);
-                        setup_dir(sp);
+                        if (! setup_dir(sp)) {
+                                free_dir(sp);
+                                __set_errno (ENOMEM);
+                                return (NULL);
+                        }
                          goto check_for_dir;
                  }


Pushed.
I'll also apply this to the upcoming coreutils release for rm.

thanks,
Pádraig.

Reply via email to