[gnutls-devel] GnuTLS | Compression broken in gnutls-3.8.4 on Darwin (at least) (#1546)
Read-only notification of GnuTLS library development activities
gnutls-devel at lists.gnutls.org
Thu Apr 18 03:51:33 CEST 2024
David Bohman created an issue: https://gitlab.com/gnutls/gnutls/-/issues/1546
## Description of problem:
The change in 7f45a942 does not work on Darwin, since `dlopen("libz.so.1", ...)` will not find the dynamic library. On Darwin, you need `dlopen("libz.dylib", ...)`, so you are going to need to pass the correct string to `dlopen` on different operating systems. I found this by inspecting the code in `gnutls-3.8.4` and writing a test program in order to demonstrate it.
## Version of gnutls used:
3.8.4
## Distributor of gnutls (e.g., Ubuntu, Fedora, RHEL)
Self compile.
## How reproducible:
Here is the test program I used:
```
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <dlfcn.h>
int
main(
int argc,
char *argv[])
{
void *dl;
if (argc > 1) {
dl = dlopen(argv[1], RTLD_NOW | RTLD_GLOBAL);
if (dl != NULL) {
fprintf(stderr, "Success!\n");
pause();
}
}
exit(1);
}
```
## Actual results:
Failure when `libz.so.1` is passed as arg 1 to the test program. For success, I had to pass in `libz.dylib`.
Here is the code fragment from `lib/compress.c`:
```
if ((_zlib_handle = dlopen("libz.so.1", RTLD_NOW | RTLD_GLOBAL)) ==
NULL)
goto error;
```
## Expected results:
I expected the library to be loaded correctly.
See #1539
--
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/-/issues/1546
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gnupg.org/pipermail/gnutls-devel/attachments/20240418/2f09036f/attachment.html>
More information about the Gnutls-devel
mailing list