home.social

#dlopen — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #dlopen, aggregated by home.social.

  1. This is freaking GENIOUS! I'd say the holy grail of both #static and #dynamic #linking, providing the benefits of both. Can't wait to test it in some real projects.

    #detour #libc #dlopen #elf #executable

    github.com/graphitemaster/deto

  2. This is freaking GENIOUS! I'd say the holy grail of both #static and #dynamic #linking, providing the benefits of both. Can't wait to test it in some real projects.

    #detour #libc #dlopen #elf #executable

    github.com/graphitemaster/deto

  3. This is freaking GENIOUS! I'd say the holy grail of both #static and #dynamic #linking, providing the benefits of both. Can't wait to test it in some real projects.

    #detour #libc #dlopen #elf #executable

    github.com/graphitemaster/deto

  4. This is freaking GENIOUS! I'd say the holy grail of both #static and #dynamic #linking, providing the benefits of both. Can't wait to test it in some real projects.

    #detour #libc #dlopen #elf #executable

    github.com/graphitemaster/deto

  5. This is freaking GENIOUS! I'd say the holy grail of both #static and #dynamic #linking, providing the benefits of both. Can't wait to test it in some real projects.

    #detour #libc #dlopen #elf #executable

    github.com/graphitemaster/deto

  6. glibc (2.41-7) unstable; urgency=medium

    Starting with glibc 2.41, shared libraries requiring an executable stack
    cannot be dynamically loaded through the #dlopen mechanism from a binary that
    does not require an executable stack. This change aims to improve security,
    as the previous behavior was used as a vector for RCE (#CVE-2023-38408).
    Attempting to do so will result in the following error:

    cannot enable executable stack as shared object requires: Invalid argument

    While most libraries generated in the past 20 years do not require an
    executable stack, some third-party software still need this capability. Many
    vendors have already updated their binaries to address this.

    If you need to run a program that requires an executable stack through
    dynamic loaded shared libraries, you can use the glibc.rtld.execstack
    tunable:

    Glibc6_TUNABLES=glibc.rtld.execstack=2 ./program

    -- Aurelien Jarno <[email protected]> Sun, 13 Apr 2025 14:41:11 +0200

    #Debian #Changelog #GLibC #Security #Linux

  7. glibc (2.41-7) unstable; urgency=medium

    Starting with glibc 2.41, shared libraries requiring an executable stack
    cannot be dynamically loaded through the #dlopen mechanism from a binary that
    does not require an executable stack. This change aims to improve security,
    as the previous behavior was used as a vector for RCE (#CVE-2023-38408).
    Attempting to do so will result in the following error:

    cannot enable executable stack as shared object requires: Invalid argument

    While most libraries generated in the past 20 years do not require an
    executable stack, some third-party software still need this capability. Many
    vendors have already updated their binaries to address this.

    If you need to run a program that requires an executable stack through
    dynamic loaded shared libraries, you can use the glibc.rtld.execstack
    tunable:

    Glibc6_TUNABLES=glibc.rtld.execstack=2 ./program

    -- Aurelien Jarno <[email protected]> Sun, 13 Apr 2025 14:41:11 +0200

    #Debian #Changelog #GLibC #Security #Linux

  8. glibc (2.41-7) unstable; urgency=medium

    Starting with glibc 2.41, shared libraries requiring an executable stack
    cannot be dynamically loaded through the #dlopen mechanism from a binary that
    does not require an executable stack. This change aims to improve security,
    as the previous behavior was used as a vector for RCE (#CVE-2023-38408).
    Attempting to do so will result in the following error:

    cannot enable executable stack as shared object requires: Invalid argument

    While most libraries generated in the past 20 years do not require an
    executable stack, some third-party software still need this capability. Many
    vendors have already updated their binaries to address this.

    If you need to run a program that requires an executable stack through
    dynamic loaded shared libraries, you can use the glibc.rtld.execstack
    tunable:

    Glibc6_TUNABLES=glibc.rtld.execstack=2 ./program

    -- Aurelien Jarno <[email protected]> Sun, 13 Apr 2025 14:41:11 +0200

    #Debian #Changelog #GLibC #Security #Linux

  9. glibc (2.41-7) unstable; urgency=medium

    Starting with glibc 2.41, shared libraries requiring an executable stack
    cannot be dynamically loaded through the #dlopen mechanism from a binary that
    does not require an executable stack. This change aims to improve security,
    as the previous behavior was used as a vector for RCE (#CVE-2023-38408).
    Attempting to do so will result in the following error:

    cannot enable executable stack as shared object requires: Invalid argument

    While most libraries generated in the past 20 years do not require an
    executable stack, some third-party software still need this capability. Many
    vendors have already updated their binaries to address this.

    If you need to run a program that requires an executable stack through
    dynamic loaded shared libraries, you can use the glibc.rtld.execstack
    tunable:

    Glibc6_TUNABLES=glibc.rtld.execstack=2 ./program

    -- Aurelien Jarno <[email protected]> Sun, 13 Apr 2025 14:41:11 +0200

    #Debian #Changelog #GLibC #Security #Linux

  10. glibc (2.41-7) unstable; urgency=medium

    Starting with glibc 2.41, shared libraries requiring an executable stack
    cannot be dynamically loaded through the #dlopen mechanism from a binary that
    does not require an executable stack. This change aims to improve security,
    as the previous behavior was used as a vector for RCE (#CVE-2023-38408).
    Attempting to do so will result in the following error:

    cannot enable executable stack as shared object requires: Invalid argument

    While most libraries generated in the past 20 years do not require an
    executable stack, some third-party software still need this capability. Many
    vendors have already updated their binaries to address this.

    If you need to run a program that requires an executable stack through
    dynamic loaded shared libraries, you can use the glibc.rtld.execstack
    tunable:

    Glibc6_TUNABLES=glibc.rtld.execstack=2 ./program

    -- Aurelien Jarno <[email protected]> Sun, 13 Apr 2025 14:41:11 +0200

    #Debian #Changelog #GLibC #Security #Linux

  11. Грязные трюки C++ из userver и Boost

    Привет, я Антон Полухин из Техплатформы Екома и Райдтеха Яндекса. Моя команда разрабатывает userver — современный опенсорсный асинхронный фреймворк с богатым набором абстракций для быстрого и комфортного создания микросервисов, сервисов и утилит на C++. Когда мы пишем какой‑то код для userver и для таких сложных проектов, как Boost , периодически мы сталкиваемся с нестандартными проблемами. И эти нестандартные проблемы требуют нестандартных решений. Вот о таких решениях мы сегодня и поговорим. А именно: — Посмотрим, как работают исключения на платформе Linux x86, и сделаем с ними что‑то интересное. — Залезем ещё глубже под капот исключений и сделаем их ещё быстрее. — Сделаем висячую ссылку на невалидный объект, и всё будет хорошо. — А под конец то, что все любим, — погрузимся в шаблонное метапрограммирование.

    habr.com/ru/companies/yandex/a

    #stacktrace #exception #exceptions #exception_throw_refactoring #metaprogramming #boost #userver #dlopen #throw #throwcatch

  12. Грязные трюки C++ из userver и Boost

    Привет, я Антон Полухин из Техплатформы Екома и Райдтеха Яндекса. Моя команда разрабатывает userver — современный опенсорсный асинхронный фреймворк с богатым набором абстракций для быстрого и комфортного создания микросервисов, сервисов и утилит на C++. Когда мы пишем какой‑то код для userver и для таких сложных проектов, как Boost , периодически мы сталкиваемся с нестандартными проблемами. И эти нестандартные проблемы требуют нестандартных решений. Вот о таких решениях мы сегодня и поговорим. А именно: — Посмотрим, как работают исключения на платформе Linux x86, и сделаем с ними что‑то интересное. — Залезем ещё глубже под капот исключений и сделаем их ещё быстрее. — Сделаем висячую ссылку на невалидный объект, и всё будет хорошо. — А под конец то, что все любим, — погрузимся в шаблонное метапрограммирование.

    habr.com/ru/companies/yandex/a

    #stacktrace #exception #exceptions #exception_throw_refactoring #metaprogramming #boost #userver #dlopen #throw #throwcatch

  13. Грязные трюки C++ из userver и Boost

    Привет, я Антон Полухин из Техплатформы Екома и Райдтеха Яндекса. Моя команда разрабатывает userver — современный опенсорсный асинхронный фреймворк с богатым набором абстракций для быстрого и комфортного создания микросервисов, сервисов и утилит на C++. Когда мы пишем какой‑то код для userver и для таких сложных проектов, как Boost , периодически мы сталкиваемся с нестандартными проблемами. И эти нестандартные проблемы требуют нестандартных решений. Вот о таких решениях мы сегодня и поговорим. А именно: — Посмотрим, как работают исключения на платформе Linux x86, и сделаем с ними что‑то интересное. — Залезем ещё глубже под капот исключений и сделаем их ещё быстрее. — Сделаем висячую ссылку на невалидный объект, и всё будет хорошо. — А под конец то, что все любим, — погрузимся в шаблонное метапрограммирование.

    habr.com/ru/companies/yandex/a

    #stacktrace #exception #exceptions #exception_throw_refactoring #metaprogramming #boost #userver #dlopen #throw #throwcatch

  14. Грязные трюки C++ из userver и Boost

    Привет, я Антон Полухин из Техплатформы Екома и Райдтеха Яндекса. Моя команда разрабатывает userver — современный опенсорсный асинхронный фреймворк с богатым набором абстракций для быстрого и комфортного создания микросервисов, сервисов и утилит на C++. Когда мы пишем какой‑то код для userver и для таких сложных проектов, как Boost , периодически мы сталкиваемся с нестандартными проблемами. И эти нестандартные проблемы требуют нестандартных решений. Вот о таких решениях мы сегодня и поговорим. А именно: — Посмотрим, как работают исключения на платформе Linux x86, и сделаем с ними что‑то интересное. — Залезем ещё глубже под капот исключений и сделаем их ещё быстрее. — Сделаем висячую ссылку на невалидный объект, и всё будет хорошо. — А под конец то, что все любим, — погрузимся в шаблонное метапрограммирование.

    habr.com/ru/companies/yandex/a

    #stacktrace #exception #exceptions #exception_throw_refactoring #metaprogramming #boost #userver #dlopen #throw #throwcatch

  15. New Video about Dynamic Loading (31min)

    Video: youtu.be/VO6gMLtQOKM

    Code: github.com/simonracz/dynamic-l

    This is mostly for C and C++ devs, although I briefly mention other languages as well.

    It's about the dlopen(), dlsym().. APIs and their many use cases.

    #linux #C #C++ #dlopen #linker #dynamic #loading #java #android #live #streaming

  16. New Video about Dynamic Loading (31min)

    Video: youtu.be/VO6gMLtQOKM

    Code: github.com/simonracz/dynamic-l

    This is mostly for C and C++ devs, although I briefly mention other languages as well.

    It's about the dlopen(), dlsym().. APIs and their many use cases.

    #linux #C #C++ #dlopen #linker #dynamic #loading #java #android #live #streaming

  17. New Video about Dynamic Loading (31min)

    Video: youtu.be/VO6gMLtQOKM

    Code: github.com/simonracz/dynamic-l

    This is mostly for C and C++ devs, although I briefly mention other languages as well.

    It's about the dlopen(), dlsym().. APIs and their many use cases.

    #linux #C #C++ #dlopen #linker #dynamic #loading #java #android #live #streaming

  18. New Video about Dynamic Loading (31min)

    Video: youtu.be/VO6gMLtQOKM

    Code: github.com/simonracz/dynamic-l

    This is mostly for C and C++ devs, although I briefly mention other languages as well.

    It's about the dlopen(), dlsym().. APIs and their many use cases.

    #linux #C #C++ #dlopen #linker #dynamic #loading #java #android #live #streaming

  19. I am trying to figure out why can one update a .dylib file to a #symlink of a locally built file in a #MacOS #App and there is no error related to #signature check on #Apple #MacOS while running..

    In this case the culprit #application is #Thunderbird and most probably is doing #dlopen of that changed dylib.

    I thought #GateKeeper will stop this. #security #verification

  20. I am trying to figure out why can one update a .dylib file to a #symlink of a locally built file in a #MacOS #App and there is no error related to #signature check on #Apple #MacOS while running..

    In this case the culprit #application is #Thunderbird and most probably is doing #dlopen of that changed dylib.

    I thought #GateKeeper will stop this. #security #verification

  21. I am trying to figure out why can one update a .dylib file to a #symlink of a locally built file in a #MacOS #App and there is no error related to #signature check on #Apple #MacOS while running..

    In this case the culprit #application is #Thunderbird and most probably is doing #dlopen of that changed dylib.

    I thought #GateKeeper will stop this. #security #verification

  22. I am trying to figure out why can one update a .dylib file to a #symlink of a locally built file in a #MacOS #App and there is no error related to #signature check on #Apple #MacOS while running..

    In this case the culprit #application is #Thunderbird and most probably is doing #dlopen of that changed dylib.

    I thought #GateKeeper will stop this. #security #verification

  23. I am trying to figure out why can one update a .dylib file to a #symlink of a locally built file in a #MacOS #App and there is no error related to #signature check on #Apple #MacOS while running..

    In this case the culprit #application is #Thunderbird and most probably is doing #dlopen of that changed dylib.

    I thought #GateKeeper will stop this. #security #verification

  24. The difference is due to the behavior of when given a null pointer for the first argument.

    Linux: "If filename is NULL, then the returned handle is for the main program."

    man7.org/linux/man-pages/man3/

  25. The difference is due to the behavior of #dlopen when given a null pointer for the first argument.

    Linux: "If filename is NULL, then the returned handle is for the main program."

    man7.org/linux/man-pages/man3/

  26. The difference is due to the behavior of #dlopen when given a null pointer for the first argument.

    Linux: "If filename is NULL, then the returned handle is for the main program."

    man7.org/linux/man-pages/man3/

  27. The difference is due to the behavior of #dlopen when given a null pointer for the first argument.

    Linux: "If filename is NULL, then the returned handle is for the main program."

    man7.org/linux/man-pages/man3/

  28. I've been looking at the behavior of on and in relation to `ctypes.pythonapi._handle`.

    On Linux, this returns a specific handle to look up symbols in the Python executable via `dlsym` even when statically linked to libpython.

    On macOS, this returns RTLD_DEFAULT, which can be a bit slow since this searches all mach-o images.

  29. I've been looking at the behavior of #dlopen on #Linux and #macOS in relation to `ctypes.pythonapi._handle`.

    On Linux, this returns a specific handle to look up symbols in the Python executable via `dlsym` even when statically linked to libpython.

    On macOS, this returns RTLD_DEFAULT, which can be a bit slow since this searches all mach-o images.

  30. I've been looking at the behavior of #dlopen on #Linux and #macOS in relation to `ctypes.pythonapi._handle`.

    On Linux, this returns a specific handle to look up symbols in the Python executable via `dlsym` even when statically linked to libpython.

    On macOS, this returns RTLD_DEFAULT, which can be a bit slow since this searches all mach-o images.

  31. I've been looking at the behavior of #dlopen on #Linux and #macOS in relation to `ctypes.pythonapi._handle`.

    On Linux, this returns a specific handle to look up symbols in the Python executable via `dlsym` even when statically linked to libpython.

    On macOS, this returns RTLD_DEFAULT, which can be a bit slow since this searches all mach-o images.