From: Andreas Schneider Date: Wed, 6 Aug 2025 12:40:34 +0000 (+0200) Subject: auth:creds: Allow to reset the realm by passing NULL X-Git-Tag: samba-4.23.0rc3~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3985c45ad97a3b2729f3970a8fbcf989a093ca44;p=thirdparty%2Fsamba.git auth:creds: Allow to reset the realm by passing NULL This is e.g. done by cli_credentials_set_anonymous(). We can't call TALLOC_FREE(cred->realm), as this would break cli_credentials_shallow_copy(). BUG: https://bugzilla.samba.org/show_bug.cgi?id=15893 Signed-off-by: Andreas Schneider Reviewed-by: Alexander Bokovoy (cherry picked from commit e5608cdb2e5a7ef2641ec0e7b0ce0b4640a02ce1) --- diff --git a/auth/credentials/credentials.c b/auth/credentials/credentials.c index c31470a81d2..5588a355c74 100644 --- a/auth/credentials/credentials.c +++ b/auth/credentials/credentials.c @@ -933,7 +933,14 @@ _PUBLIC_ bool cli_credentials_set_realm(struct cli_credentials *cred, enum credentials_obtained obtained) { if (obtained >= cred->realm_obtained) { - cred->realm = strupper_talloc(cred, val); + /* If `val = NULL` is passed, realm is reset */ + cred->realm = NULL; + if (val != NULL) { + cred->realm = strupper_talloc(cred, val); + if (cred->realm == NULL) { + return false; + } + } cred->realm_obtained = obtained; cli_credentials_invalidate_ccache(cred, cred->realm_obtained); return true;