1
0
mirror of https://github.com/libssh2/libssh2.git synced 2026-10-24 03:48:58 +03:00
Files
libssh2/docs/libssh2_trace_sethandler.md
Viktor Szakats 4ee56c613a src: return LIBSSH2_ERROR_BAD_USE when session == NULL
Replacing various stray error codes and/or calling `ssh2_err()` with
the NULL `session`, resulting in a NULL pointer dereference.

Also:
- return it from `libssh2_trace()` and `libssh2_trace_sethandler()`.

Ref: #2282

Closes #2283
2026-07-13 02:24:43 +02:00

1.5 KiB

c, SPDX-License-Identifier, Title, Section, Source, See-also
c SPDX-License-Identifier Title Section Source See-also
Copyright (C) The libssh2 project and its contributors. BSD-3-Clause libssh2_trace_sethandler 3 libssh2

NAME

libssh2_trace_sethandler - set a trace output handler

SYNOPSIS

#include <libssh2.h>

typedef void (*libssh2_trace_handler_func)(LIBSSH2_SESSION *session,
                                           void *context,
                                           const char *data,
                                           size_t length);

int libssh2_trace_sethandler(LIBSSH2_SESSION *session,
                             void *context,
                             libssh2_trace_handler_func callback);

DESCRIPTION

libssh2_trace_sethandler installs a trace output handler for your application. By default, when tracing has been switched on via a call to libssh2_trace(), all output is written to stderr. By calling this method and passing a function pointer that matches the libssh2_trace_handler_func prototype, libssh2 calls back as it generates trace output. This can be used to capture the trace output and put it into a log file or diagnostic window. This function has no effect unless libssh2 was built to support this option, and a typical "release build" might not.

context can be used to pass arbitrary user defined data back into the callback when invoked.

RETURN VALUE

0 on success, LIBSSH2_ERROR_BAD_USE if the session is invalid.

AVAILABILITY

Added in libssh2 version 1.2.3