Crash in vfs_s_close()

Pavel Roskin proski at gnu.org
Sun Aug 19 03:39:48 UTC 2001


Hi!

> > I was playing with compressed cpio files on fish and soon after that MC
> > crashed.  I cannot reproduce this problem.

I remember that some broken cpio archives were involved.  I could
reproduce the problem when MC crashes immediately on entering a truncated
cpio archive on ftpfs (that time it was fish).

I don't know if this bug is related (I think 20% probability that it is),
but I'm fixing it anyway.

------------------------------------------
--- ChangeLog
+++ ChangeLog
@@ -1 +1,6 @@
+2001-08-18  Pavel Roskin  <proski at gnu.org>
+
+	* cpio.c (cpio_read_head): Check return value of cpio_find_head,
+	because it's not equal to super->u.cpio.type in case of errors.
+
 2001-08-16  Pavel Roskin  <proski at gnu.org>
--- cpio.c
+++ cpio.c
@@ -183,8 +183,7 @@ static int cpio_open_cpio_file(vfs *me,

 static int cpio_read_head(vfs *me, vfs_s_super *super)
 {
-    cpio_find_head(me, super);
-    switch(super->u.cpio.type) {
+    switch(cpio_find_head(me, super)) {
     case CPIO_UNKNOWN:
 	return -1;
     case CPIO_BIN:
------------------------------------------

By the way, fh->changed=129 clearly indicates memory corruption.  The code
only assigns 0 and 1 to it.

-- 
Regards,
Pavel Roskin





More information about the mc-devel mailing list