Ticket #366: tar.c.diff

File tar.c.diff, 508 bytes (added by mike.dld, 15 years ago)

Possible solution (works for me)

  • vfs/tar.c

    diff --git a/vfs/tar.c b/vfs/tar.c
    index d89fdfb..6c48db4 100644
    a b tar_read_header (struct vfs_class *me, struct vfs_s_super *archive, 
    616616        } 
    617617 
    618618        tar_fill_stat (archive, &st, header, *h_size); 
     619        if (S_ISDIR(st.st_mode)) { 
     620            entry = MEDATA->find_entry (me, parent, p, LINK_NO_FOLLOW, FL_NONE); 
     621            if (entry) 
     622                goto done; 
     623        } 
    619624        inode = vfs_s_new_inode (me, archive, &st); 
    620625 
    621626        inode->data_offset = data_position;