From e6903a193d6ec3db83091e46ad6e24019dab6e9a Mon Sep 17 00:00:00 2001 From: Thomas Guillem Date: Mon, 9 Jan 2017 17:59:15 +0100 Subject: [PATCH] vlc_credential: fix domain/username switch for smb Fixes #17858 --- include/vlc_keystore.h | 2 +- src/misc/keystore.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/vlc_keystore.h b/include/vlc_keystore.h index 67765a4e3e..5d143df7a5 100644 --- a/include/vlc_keystore.h +++ b/include/vlc_keystore.h @@ -185,7 +185,7 @@ struct vlc_credential vlc_keystore_entry *p_entries; unsigned int i_entries_count; - char *psz_split_username; + char *psz_split_domain; char *psz_var_username; char *psz_var_password; diff --git a/src/misc/keystore.c b/src/misc/keystore.c index 3f9077c3f4..79c9b579f7 100644 --- a/src/misc/keystore.c +++ b/src/misc/keystore.c @@ -277,11 +277,12 @@ smb_split_domain(vlc_credential *p_credential) size_t i_len = psz_delim - p_credential->psz_username; if (i_len > 0) { - p_credential->psz_split_username = + free(p_credential->psz_split_domain); + p_credential->psz_split_domain = strndup(p_credential->psz_username, i_len); - p_credential->psz_username = p_credential->psz_split_username; + p_credential->psz_realm = p_credential->psz_split_domain; } - p_credential->psz_realm = psz_delim + 1; + p_credential->psz_username = psz_delim + 1; } } @@ -362,7 +363,7 @@ vlc_credential_clean(vlc_credential *p_credential) if (p_credential->p_keystore) vlc_keystore_release(p_credential->p_keystore); - free(p_credential->psz_split_username); + free(p_credential->psz_split_domain); free(p_credential->psz_var_username); free(p_credential->psz_var_password); free(p_credential->psz_dialog_username);