Skip to content

Memory leak in GSSAPI codepath #4856

@jake-scott

Description

@jake-scott

The GSSAPI code leaks memory. Here's an address-sanitizer output:

Direct leak of 378 byte(s) in 14 object(s) allocated from:
    #0 0x773c656fd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x773c6559521b in zmq::gssapi_mechanism_base_t::encode_message(zmq::msg_t*) src/gssapi_mechanism_base.cpp:61
    #2 0x773c65599e3a in zmq::gssapi_mechanism_base_t::produce_ready(zmq::msg_t*) src/gssapi_mechanism_base.cpp:302
    #3 0x773c65599e3a in zmq::gssapi_server_t::next_handshake_command(zmq::msg_t*) src/gssapi_server.cpp:55
    #4 0x773c655c8bcd in zmq::stream_engine_base_t::next_handshake_command(zmq::msg_t*) src/stream_engine_base.cpp:459
    #5 0x773c655c44b7 in zmq::stream_engine_base_t::out_event() src/stream_engine_base.cpp:326
    #6 0x773c655961e8 in zmq::io_thread_t::in_event() src/io_thread.cpp:64
    #7 0x773c65595118 in zmq::epoll_t::loop() src/epoll.cpp:183
    #8 0x773c655c1f08 in thread_routine src/thread.cpp:229
    #9 0x773c6565ea41 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
    #10 0x773c6529caa3 in start_thread nptl/pthread_create.c:447

The issue is that the buffer containing the plain-text passed to gss_wrap is not freed so every message is leaked.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions