mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-08-01 11:26:52 +03:00
log: fixes legacy fallback for multiple sessions.
Legacy code in 'ssh_set_callbacks' will fallback to 'ssh_legacy_log_callback' (if the current log cb is NULL) setting the user data to the current session. However, if any other session is created afterwards, it won't update the user data with the new session, potentially leading to a use-after-free. Fixes #238. Signed-off-by: Diego Roux <diegoroux04@protonmail.com> Reviewed-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
@ -3,9 +3,10 @@
|
||||
#define LIBSSH_STATIC
|
||||
|
||||
#include "torture.h"
|
||||
#include <libssh/priv.h>
|
||||
#include <errno.h>
|
||||
#include <libssh/callbacks.h>
|
||||
#include <libssh/misc.h>
|
||||
#include <libssh/priv.h>
|
||||
|
||||
static int myauthcallback (const char *prompt, char *buf, size_t len,
|
||||
int echo, int verify, void *userdata) {
|
||||
@ -249,11 +250,15 @@ static void torture_callbacks_iterate(void **state){
|
||||
int torture_run_tests(void) {
|
||||
int rc;
|
||||
struct CMUnitTest tests[] = {
|
||||
cmocka_unit_test_setup_teardown(torture_callbacks_size, setup, teardown),
|
||||
cmocka_unit_test_setup_teardown(torture_callbacks_exists, setup, teardown),
|
||||
cmocka_unit_test_setup_teardown(torture_callbacks_size,
|
||||
setup,
|
||||
teardown),
|
||||
cmocka_unit_test_setup_teardown(torture_callbacks_exists,
|
||||
setup,
|
||||
teardown),
|
||||
cmocka_unit_test(torture_log_callback),
|
||||
cmocka_unit_test(torture_callbacks_execute_list),
|
||||
cmocka_unit_test(torture_callbacks_iterate)
|
||||
cmocka_unit_test(torture_callbacks_iterate),
|
||||
};
|
||||
|
||||
ssh_init();
|
||||
|
Reference in New Issue
Block a user