Skip to content

Libdl.dlopen returns a non-NULL pointer on empty string #22318

@joshbode

Description

@joshbode

On Linux, dlopen and dlopen_e return a non-zero pointer when given an empty string.

Linux VM (on macOS) using the official 0.5.2 Linux binaries:

julia> Libdl.dlopen("")
Ptr{Void} @0x00007f183b11a1a8

julia> Libdl.dlopen_e("")
Ptr{Void} @0x00007f183b11a1a8

julia> versioninfo()
Julia Version 0.5.2
Commit f4c6c9d (2017-05-06 16:34 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM)2 Duo CPU     P7550  @ 2.26GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Penryn)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.7.1 (ORCJIT, penryn)

Linux VM using the official 0.6.0-rc3 Linux binaries:

julia> Libdl.dlopen("")
Ptr{Void} @0x00007f4c365cd1a8

julia> Libdl.dlopen_e("")
Ptr{Void} @0x00007f4c365cd1a8

julia> versioninfo()
Julia Version 0.6.0-rc3.0
Commit ad290e9 (2017-06-07 11:53 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM)2 Duo CPU     P7550  @ 2.26GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Penryn)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, penryn)

Same behaviour also observed natively (no VM) under Linux on a colleague's machine.

On macOS in 0.5.2 and 0.6.0-rc3 the pointer returned by Libdl.dlopen_e("") is C_NULL and Libdl.dlopen("") is an error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIndicates an unexpected problem or unintended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions