-L../tt/../../output/ppc  =>  -L../outuut/ppc  (corrupt, tt does not exist).
-L../tt/.././output/ppc  =>  -L./oututt/ppc  (corrupt)

I think the algorithm that gbuild uses is something like this

Starting from ../tt/.././output/ppc:

- Prepend the path to the config file to the path given in the config file 
(shared-libs/../tt/.././output/ppc)
- Starting from the beginning each time, search for "/\./" or "/[^/]+/\.\./" 
and remove each occurrence with "/"

At least that's how I would implement it. It's unlikely that they are
using regular expressions of course. It is likely that they simply scan
through the string and then use memcpy, memmove or strcpy move the
remainder of the string forward to effect the replacement. So I would
suspect those kind of functions. Have there been any changes in this
area between libc 2.13 and 2.15?

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/932621

Title:
  String corruption

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/932621/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to