On 6/20/2024 12:45 AM, Eli Zaretskii wrote: >> Date: Wed, 19 Jun 2024 22:34:02 -0700 >> Cc: 71655@debbugs.gnu.org, james@literate-devops.io >> From: Jim Porter >> >> My version of ls reports it as a symlink, interestingly enough. > > It isn't a symlink. It is a reparse point of type APPEXECLINK, which > has different attributes and different data structure describing the > target. We could represent it as a symlink (since Posix has no direct > equivalent), but the implementation under the hood will need to be > different. Right. This was just (what I thought was) an interesting observation about how other POSIX-based tools treat these reparse points. > I agree that all those other conditions (including the .exe test) seem > to be reasonable, in addition to zero-size. Do you have a preference between either of these patches? They either check for zero-size or ignore file errors when trying to insert. I don't have a strong preference myself, but the latter seems ever-so-slightly safer to me. This bug happened because we can't read the file when trying to insert it, so ignoring file errors would cover any other situations we haven't predicted. On the other hand, maybe there's a case where we *want* the 'insert-file-contents-literally' error to signal so that we don't try to execute the file normally (I can't think of any such cases, though).