entered into RCS
authorRoland McGrath <roland@redhat.com>
Wed, 2 Jun 1993 20:56:37 +0000 (20:56 +0000)
committerRoland McGrath <roland@redhat.com>
Wed, 2 Jun 1993 20:56:37 +0000 (20:56 +0000)
dir.c

diff --git a/dir.c b/dir.c
index 8c27c51..1e1bcf1 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -242,19 +242,24 @@ dir_contents_file_exists_p (dir, filename)
     {
       /* Enter the file in the hash table.  */
       register unsigned int newhash = 0;
+      unsigned int len;
       register unsigned int i;
 
       if (!REAL_DIR_ENTRY (d))
        continue;
 
-      for (i = 0; i < D_NAMLEN(d); ++i)
+      len = D_NAMLEN (d);
+      while (d->d_name[len - 1] == '\0')
+       --len;
+
+      for (i = 0; i < len; ++i)
        HASH (newhash, d->d_name[i]);
       newhash %= DIRFILE_BUCKETS;
 
       df = (struct dirfile *) xmalloc (sizeof (struct dirfile));
       df->next = dir->files[newhash];
       dir->files[newhash] = df;
-      df->name = savestring (d->d_name, D_NAMLEN(d));
+      df->name = savestring (d->d_name, len);
       df->impossible = 0;
 
       /* Check if the name matches the one we're searching for.  */