Opened 8 years ago
Closed 8 years ago
#13436 closed bug (fixed)
runtime_loader can't handle SONAME longer than 32 chars
Reported by: | korli | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | System/runtime_loader | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
One of the samba4 libraries is named "libsamba-cluster-support-samba4.so", which is 34 characters long. It is then cut at libsamba-cluster-support-samba4 when used in the image_t structure in the name field. The limit is ATM B_OS_NAME_LENGTH.
Resulting error:
runtime_loader: /boot/system/lib/libsmbconf.so.0: Version dependency "libsamba-cluster-support-samba4.so" not foundfree(0x00000070a174e7e0) free(0x00000070a174e628)
Change History (4)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Looking at the runtime loader's heap implementation, it starts using 64 KB, and increases it's size by 32 KB. If you're interested in how much more memory that will take, the following shell command will compute a size of all runtime loader heaps in bytes (to run before and after on a freshly booted system):
$ listarea | grep "rld heap" | cut -c50-60 | grep -v "^$" | { echo ibase=16; paste -d+ -s; } | bc
comment:3 by , 8 years ago
I tried and it varies between 6207000 and 6584000, same values with or without B_FILE_MAX_LENGTH.
comment:4 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Increased to B_FILE_MAX_LENGTH in hrev51110.
The proposed fix is to extend the name field to B_FILE_NAME_LENGTH. http://cgit.haiku-os.org/haiku/tree/headers/private/runtime_loader/runtime_loader.h#n91