Missing 'libubus.so' and change of ABI in 19.07.8

Jo-Philipp Wich jo at mein.io
Sat Nov 13 09:47:12 PST 2021


Hi,

> But I really can't see the breaking change, could you please point it out for me?

struct ubus_client changed its layout.

> The second question is the change of the library name from 'libubus.so' to
> 'libubus.so.20210603'. Was this intended? 

Yes, it was intentional. Programs should link against the versioned shared
library at build time.

> Could we at least add the symlink
> 'libubus.so'?

No, as it will break coexistence of different versions of libubus.so. It will
also cause programs linking against the old libubus.so to pick up the new one
with a different `struct ubus_client` memory layout, leading to undefined
behavior and segmentation faults.

> My take is that both of these changes, together with unsharing the ubus
> package, were really unnecessary in a stable branch nearing its end of life.

The changes solve multiple denial of service and invalid memory access issues,
they were important enough to warrant this breaking change.

> Thank you for insights and kind regards.

You can find more details about library ABI versioning in
https://openwrt.org/docs/guide-developer/package-policies#shared_libraries


Kind regards,
Jo

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20211113/41ca5006/attachment-0001.sig>


More information about the openwrt-devel mailing list