Bryce Harrington wrote:
- The code for enable-binreloc=auto (which was previously the default) checked the build environment rather than the execution environment.
??? What does this mean?
autopackage code prevents running inkscape from the build directory. (This problem is reduced if the source directory and the build directory are the same.)
It should fall back to using the configure-supplied PREFIX value.
I don't think this is possible except if you explicitly code fallback functions in the application.
- br_locate uses sscanf("%x-%x") and unsigned ints whereas
linux/fs/proc/array.c uses printf("%08lx-%08lx") and unsigned longs. This presumably leads to bugs on 64-bit platforms.
That's because Mike's patch uses an old version of BinReloc. The CVS BinReloc uses unsigned longs and "%lx" (maybe I should change that to "%08lx" instead? not sure).
- br_prepend_prefix needlessly requires that its path argument be
writable.
It doesn't. br_prepend_prefix doesn't modify the content of the path argument in any way. I just didn't use the 'const' keyword, that's all. ;)
- br_strcat uses calloc, only to write over the space. It in
effect calculates strlen(str1) 3 times and strlen(str2) twice.
Should be fixed in the autopackage CVS now.
- br_strndup has buffer overflow if size excedes the length of str
by more than one.
Thanks for the tip. Fixed in CVS now.
- br_extract_prefix doesn't behave as its documentation indicates.
This is a typo in the documentation. Fixed.
Also it does an unnecessary strndup when it could use memrchr.
I'm not sure which line exactly you're referring to.