misc/149335: shell script runs on Linux but not on freebsd

Paul eb30750 at gmail.com
Fri Aug 6 14:44:21 UTC 2010


What about matching the ' marks in this section?  I get a command error.

>>   # XXX: put extraction in its own function
>>   MAGIC_NUMBER=`od -An -t u4 -N 4 -j $MAGIC_OFFSET "$file" | tr -d ' '`
> 
> 


Sent from my iPod

On Aug 6, 2010, at 3:12 AM, Oliver Fromme <olli at lurza.secnetix.de> wrote:

> Paul Lambert wrote:
>>> Number:         149335
>>> Category:       misc
>>> Synopsis:       shell script runs on Linux but not on freebsd
>> [...]
>>> Environment:
>> FreeBSD BRSINC-VM02.local 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:36:49 UTC 2010     root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>>> Description:
>> The script fails on these two lines so far; "stat" and "od"
>> 
>> # This won't work with non-GNU stat.
>> FILE_SIZE=`stat --format "%s" "$0"`
>> offset=$(($FILE_SIZE - 4))
> 
> As the comment suggests, that command is non-portable and
> works with GNU stat (linux) only.  This is not a standard.
> The equivalent BSD command line would be:
> 
> FILE_SIZE=`stat -f %z "$0"`
> 
> I wonder why the script even needs to find out its own size,
> and then read binary data from itself?!?  Is this some kind
> of "copy protection" or similar tricks?  If so, I suspect
> that it is highly non-portable and will be difficult to get
> to run on anything else than linux.
> 
>>   # XXX: put extraction in its own function
>>   MAGIC_NUMBER=`od -An -t u4 -N 4 -j $MAGIC_OFFSET "$file" | tr -d ' '`
> 
> This command works fine on FreeBSD 8.1.  If it doesn't work
> in the context of the script, I suspect that it is caused
> by preceding problems that set one of the variables to a
> wrong value.
> 
> As a work-around, you might try running the script with
> /compat/linux/bin/sh instead of /bin/sh.  You need to
> enable Linux compatibility ("kldload linux") and install
> ports/emulators/linux_base-f10 if you don't have it already.
> 
> As this is not a bug in FreeBSD, I suggest that this PR can
> be closed.  Do you agree?
> 
> Best regards
>   Oliver
> 
> -- 
> Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
> Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
> secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
> chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
> 
> FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
> 
> "Unix gives you just enough rope to hang yourself --
> and then a couple of more feet, just to be sure."
>        -- Eric Allman


More information about the freebsd-bugs mailing list