From: Damian Stewart <damian@frey.co.nz>
To: linux-fsdevel@vger.kernel.org
Subject: PROBLEM: hfsplus filesystem allows opendir() on plain files
Date: Tue, 02 Dec 2008 16:26:56 +0100 [thread overview]
Message-ID: <493553C0.2090407@frey.co.nz> (raw)
1. hfsplus filesystem allows opendir() on plain files.
2. When opendir() is called on a plain file stored in an hfsplus
filesystem, opendir() fails to return 0 and set errno to ENOTDIR.
3. filesystem, hfsplus
4. Linux version 2.6.27-7-generic (buildd@palmer) (gcc version 4.3.2
(Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Tue Nov 4 19:33:20 UTC 2008
5. unknown
6. n/a
7. Try the following program on files and directories first under a
mountpoint for an ext3 partition then under a mountpoint for an hfsplus
partition.
///////////////////////////////////
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
// usage: opendir_test <file>|<directory>
int main( int argc, char** argv )
{
DIR* result = opendir( argv[1] );
printf("ENOTDIR is 0x%x\n", ENOTDIR );
printf("opendir '%s' returned 0x%x, errno 0x%x\n", argv[1], result,
errno );
return 0;
}
//////////////////////////////////
I get the following output:
damian@damian-laptop:~/code/opendir$ mkdir test_directory
damian@damian-laptop:~/code/opendir$ echo hello > test_file.txt
damian@damian-laptop:~/code/opendir$ ./opendir_test test_directory
ENOTDIR is 0x14
opendir 'test_directory' returned 0x88f6008, errno 0x0
damian@damian-laptop:~/code/opendir$ ./opendir_test test_file.txt
ENOTDIR is 0x14
opendir 'test_file.txt' returned 0x0, errno 0x14
# /osx is an HFSPLUS mountpoint
damian@damian-laptop:~/code/opendir$ cd /media/osx
# mkdir test_directory && echo hello > test_file.txt performed in OSX
damian@damian-laptop:/media/osx$ ./opendir_test test_directory
ENOTDIR is 0x14
opendir 'test_directory' returned 0x919d008, errno 0x0
# erroneous result follows
damian@damian-laptop:/media/osx$ ./opendir_test test_file.txt
ENOTDIR is 0x14
opendir 'test_file.txt' returned 0x9a23008, errno 0x0
damian@damian-laptop:/media/osx$
8. If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.
Linux damian-laptop 2.6.27-7-generic #1 SMP Tue Nov 4 19:33:20 UTC 2008
i686 GNU/Linux
Gnu C 4.3.2-1ubuntu11)
Gnu make 3.81
binutils Binutils
util-linux 2.14
mount support
module-init-tools 3.3-pre11
e2fsprogs 1.41.3
reiserfsprogs 3.6.19
pcmciautils 014
Linux C Library 2.8.90
Dynamic linker (ldd) 2.8.90
Procps 3.2.7
Net-tools 1.60
Kbd 1.14.1
Sh-utils 6.10
udev 124
wireless-tools 29
Modules Loaded ipv6 aes_i586 aes_generic nls_utf8 hfsplus i915 drm
af_packet binfmt_misc btusb sco bridge stp bnep rfcomm l2cap bluetooth
ppdev acpi_cpufreq cpufreq_stats cpufreq_powersave cpufreq_conservative
cpufreq_userspace cpufreq_ondemand freq_table container wmi pci_slot sbs
sbshc iptable_filter ip_tables x_tables sbp2 parport_pc lp parport joydev
snd_hda_intel arc4 snd_pcm_oss snd_mixer_oss iTCO_wdt ecb crypto_blkcipher
iTCO_vendor_support snd_pcm ath9k evdev appleir pcspkr appletouch
snd_seq_dummy mac80211 snd_seq_oss cfg80211 snd_seq_midi snd_rawmidi
snd_seq_midi_event snd_seq video snd_timer snd_seq_device output battery
snd ac intel_agp button soundcore agpgart shpchp pci_hotplug snd_page_alloc
ext3 jbd mbcache sd_mod crc_t10dif sr_mod cdrom sg ata_generic ata_piix
usbhid hid pata_acpi ohci1394 libata ieee1394 scsi_mod ehci_hcd uhci_hcd
dock usbcore sky2 thermal processor fan fbcon tileblit font bitblit
softcursor fuse
thanks
d
--
damian stewart | skype: damiansnz | damian@frey.co.nz
frey | live art with machines | http://www.frey.co.nz
next reply other threads:[~2008-12-02 15:57 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-02 15:26 Damian Stewart [this message]
2008-12-02 22:21 ` PROBLEM: hfsplus filesystem allows opendir() on plain files Brad Boyer
2008-12-05 8:53 ` Damian Stewart
2008-12-06 6:00 ` Brad Boyer
2008-12-05 9:39 ` Christoph Hellwig
2008-12-06 6:32 ` Brad Boyer
2008-12-06 6:47 ` Al Viro
2008-12-06 7:21 ` Brad Boyer
2008-12-06 22:31 ` Al Viro
2008-12-06 22:35 ` Al Viro
2008-12-06 12:06 ` Anton Altaparmakov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=493553C0.2090407@frey.co.nz \
--to=damian@frey.co.nz \
--cc=linux-fsdevel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.