summaryrefslogtreecommitdiff
path: root/lib/savedir.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2000-01-04 22:54:54 +0000
committerJim Meyering <jim@meyering.net>2000-01-04 22:54:54 +0000
commita2bee2bc6f380d65bb6bf091844244992be00a42 (patch)
treec95475515191445d5763aaa05b448dd39c651f37 /lib/savedir.c
parent1e0110371353f39f12bb0feaaa4f5ef0fdb76890 (diff)
downloadcoreutils-a2bee2bc6f380d65bb6bf091844244992be00a42.tar.xz
(savedir): Don't store past the end of an array if
name_size is zero and the directory is empty.
Diffstat (limited to 'lib/savedir.c')
-rw-r--r--lib/savedir.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/savedir.c b/lib/savedir.c
index 5987319d0..29b3842c0 100644
--- a/lib/savedir.c
+++ b/lib/savedir.c
@@ -1,5 +1,5 @@
/* savedir.c -- save the list of files in a directory in a string
- Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -87,6 +87,10 @@ savedir (const char *dir, off_t name_size)
if (dirp == NULL)
return NULL;
+ /* Be sure name_size is at least `1' so there's room for
+ the final NUL byte. */
+ name_size += !name_size;
+
name_space = (char *) malloc (name_size);
if (name_space == NULL)
{