patch-2.2.17 linux/fs/umsdos/emd.c
Next file: linux/fs/umsdos/inode.c
Previous file: linux/fs/umsdos/README-WIP.txt
Back to the patch index
Back to the overall index
- Lines: 17
- Date:
Mon Sep 4 18:39:28 2000
- Orig file:
v2.2.16/fs/umsdos/emd.c
- Orig date:
Mon Sep 4 18:37:06 2000
diff -u --recursive --new-file v2.2.16/fs/umsdos/emd.c linux/fs/umsdos/emd.c
@@ -273,6 +273,16 @@
Printk ((KERN_DEBUG "umsdos_emd_dir_readentry /mn/: entering.\n"));
ret = umsdos_emd_dir_read (filp, (char *) entry, UMSDOS_REC_SIZE);
+
+ /* if this is an invalid entry (invalid name length), ignore it */
+ if( entry->name_len > UMSDOS_MAXNAME )
+ {
+ printk (KERN_WARNING "Ignoring invalid EMD entry with size %d\n", entry->name_len);
+ entry->name_len = 0;
+ ret = -ENAMETOOLONG; /* notify umssync(8) code that something is wrong */
+ }
+
+
if (ret == 0) { /* if no error */
/* Variable size record. Maybe, we have to read some more */
int recsize = umsdos_evalrecsize (entry->name_len);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)