Commit c8a4a8b
committed
fs: only back Blobs with regular files
FdEntry::Create() accepted any path that stat'd, so openAsBlob() handed
out a Blob for directories and fifos. Reading a directory Blob failed
later with NotReadableError and code 0, hiding the EISDIR. A fifo was
worse: opening it with no writer blocked the main thread, so the event
loop stopped.
Only a regular file can be read through the file descriptor this entry
uses, so reject everything else, reporting EISDIR for directories and
EINVAL otherwise.1 parent addcba2 commit c8a4a8b
2 files changed
Lines changed: 34 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
859 | 859 | | |
860 | 860 | | |
861 | 861 | | |
862 | | - | |
863 | | - | |
864 | 862 | | |
865 | 863 | | |
866 | 864 | | |
| |||
882 | 880 | | |
883 | 881 | | |
884 | 882 | | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
885 | 893 | | |
886 | 894 | | |
887 | 895 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
142 | 143 | | |
143 | 144 | | |
144 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
145 | 169 | | |
146 | 170 | | |
147 | 171 | | |
| |||
0 commit comments