On 08/06/2012 02:56 PM, Eric Blake wrote:
> On 08/04/2012 12:15 PM, Stefano Lattarini wrote:
>> On current OpenIndiana (based on what once was OpenSolaris 11), the shell
>> /bin/sh (which, differently from what happens on Solaris, is a true POSIX
>> shell, thus worthy of consideration) somehow manages to "eat" the
>> error message from 'rm' when that fails to remove a file due to lacking
>> permission on the parent directory:
>>
>>   $ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo"
>>   $ echo rc = $?
>>   rc = 1
>>   $ /bin/bash -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo"
>>   rm: foo not removed: Permission denied
>>   $ echo rc = $?
>>   rc = 2
>>   $ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; env rm -f foo"
>>   rm: foo not removed: Permission denied
>>   $ echo rc = $?
>>   rc = 2
>>
>> That is probably due to an improper optimization, that is, the shell tries
>> to be smart and remove the file itself instead of invoking 'rm', but fails
>> spectacularly in the attempt.
> 
> Oh my.  Probably worth documenting in autoconf's list of shell
> programming pitfalls.
> 
Or even better, considering that OpenIndiana is quite a young and moving
target, this bug could be reported to them, and hopefully fixed early ...

Regards,
  Stefano

Reply via email to