Re: ar exception in getname?

Michael Elizabeth Chastain (mec@shout.net)
Sat, 29 Nov 1997 15:30:09 -0600


(Oops, I forgot to cc: this to the other recipients ... Bill is getting
two copies, sorry about that).

> My 'ar' may very well be old, so I'll check and upgrade. I also see
> those "umoven" errors frequently from strace -- does it indicate a bad
> address in the call? Usually it happens with the call I'm most
> interested in seeing, of course.

strace reports "umoven" errors when its calls to ptrace fail.
A bad address generates a "umoven" or "umovestr".

strace 3.1 also has a bug: when it fetches pathnames from the target
process, it fetches MAXPATHLEN bytes, where MAXPATHLEN=PATH_MAX=4095.
This often fails when the pathname is on the stack because it tries
to fetch beyond the end of the stack, generating spurious "umoven"
errors.

This bug is fixed in strace 3.1.0.1, which is available from
Rick Sladkey's ftp directory:

ftp://ftp.std.com/pub/jrs/strace-3.1.0.1.tar.gz

Unfortunately this package doesn't build on recent kernels like 2.1.66.
You can build it on 2.0.29 though (and probably .30, .31, .32).

With the new strace 3.1.0.1 I get just one "umovestr" error from ar,
when it calls "open" with a pointer of 0.

There is an also a quick and ugly workaround. You can fill up your
environment with 4096 bytes of strings, so that your current "strace"
will work fine even with its oversized reads. I've attached a script
that I source to do this. Again, when I use this with the current
"strace", I get just one "umoven" error from ar.

Regards,

Michael Chastain
<mailto:mec@shout.net>
"love without fear"

---

export BLOB_00=............................................................... export BLOB_01=............................................................... export BLOB_02=............................................................... export BLOB_03=............................................................... export BLOB_04=............................................................... export BLOB_05=............................................................... export BLOB_06=............................................................... export BLOB_07=............................................................... export BLOB_08=............................................................... export BLOB_09=............................................................... export BLOB_10=............................................................... export BLOB_11=............................................................... export BLOB_12=............................................................... export BLOB_13=............................................................... export BLOB_14=............................................................... export BLOB_15=............................................................... export BLOB_16=............................................................... export BLOB_17=............................................................... export BLOB_18=............................................................... export BLOB_19=............................................................... export BLOB_20=............................................................... export BLOB_21=............................................................... export BLOB_22=............................................................... export BLOB_23=............................................................... export BLOB_24=............................................................... export BLOB_25=............................................................... export BLOB_26=............................................................... export BLOB_27=............................................................... export BLOB_28=............................................................... export BLOB_29=............................................................... export BLOB_30=............................................................... export BLOB_31=............................................................... export BLOB_32=............................................................... export BLOB_33=............................................................... export BLOB_34=............................................................... export BLOB_35=............................................................... export BLOB_36=............................................................... export BLOB_37=............................................................... export BLOB_38=............................................................... export BLOB_39=............................................................... export BLOB_40=............................................................... export BLOB_41=............................................................... export BLOB_42=............................................................... export BLOB_43=............................................................... export BLOB_44=............................................................... export BLOB_45=............................................................... export BLOB_46=............................................................... export BLOB_47=............................................................... export BLOB_48=............................................................... export BLOB_49=............................................................... export BLOB_50=............................................................... export BLOB_51=............................................................... export BLOB_52=............................................................... export BLOB_53=............................................................... export BLOB_54=............................................................... export BLOB_55=............................................................... export BLOB_56=............................................................... export BLOB_57=............................................................... export BLOB_58=............................................................... export BLOB_59=............................................................... export BLOB_60=............................................................... export BLOB_61=............................................................... export BLOB_62=............................................................... export BLOB_63=...............................................................