Commit 88572c2
committed
fix: an enquiry that reports an overflow has still answered
FILE_FS_VOLUME_INFORMATION ends in the volume's label, which is as long as the
label is. The buffer here held the fixed part and one character of it -- enough
for every field this reads, since the serial number precedes the label -- and
the object manager still reported STATUS_BUFFER_OVERFLOW because the label did
not fit. That value is 0x80000005: negative, so okw::ok said no, so the identity
position was left clear.
Which is a correct report of something that was not true. This implementation
was saying "this node's identity is not known here", a caller was believing it,
and the identity was sitting in the buffer.
It surfaced two packages away, in openkal-musl's probe on Windows: "two
different files have different identities" did not hold, because both had been
given the zero this branch leaves behind. The conformance suite could not have
said so and is right not to -- an implementation is allowed to decline the
field, so the suite reports the observation as one it did not make.
Room for a label is given so the ordinary case succeeds, and the overflow is
accepted so the extraordinary one still answers.1 parent c4913c5 commit 88572c2
2 files changed
Lines changed: 36 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
176 | 201 | | |
177 | | - | |
178 | 202 | | |
179 | 203 | | |
180 | 204 | | |
181 | 205 | | |
182 | | - | |
183 | | - | |
| 206 | + | |
| 207 | + | |
184 | 208 | | |
185 | 209 | | |
186 | 210 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
215 | 215 | | |
216 | 216 | | |
217 | 217 | | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
218 | 227 | | |
219 | 228 | | |
220 | 229 | | |
| |||
0 commit comments