From: ChuanGang Jiang Date: Mon, 27 Feb 2023 11:46:12 +0000 (+0000) Subject: fts: fail gracefully when out of memory X-Git-Tag: v1.0~1661 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=f17d397771164c1b0f77fea8fb0abdc99cf4a3e1;p=gnulib.git fts: fail gracefully when out of memory * lib/fts.c (fts_read): Set errno==ENOMEM and return NULL when setup_dir() fails, rather than hitting an assertion later. --- diff --git a/ChangeLog b/ChangeLog index ed886704d7..25610ee51b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2023-02-27 ChuanGang Jiang + + fts: fail gracefully when out of memory + * lib/fts.c (fts_read): Set errno==ENOMEM and return NULL + when setup_dir() fails, rather than hitting an assertion later. + 2023-02-26 Jim Meyering announce-gen: spell OpenBSD with a capital "O" diff --git a/lib/fts.c b/lib/fts.c index 78584b2902..794a4f75d7 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; }