Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Alexander_Naumov:SLE-12:Update
dovecot22
CVE-2022-30550.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File CVE-2022-30550.patch of Package dovecot22
--- src/auth/auth-request.c.orig 2022-07-07 19:06:16.591545938 +0200 +++ src/auth/auth-request.c 2022-07-07 19:10:56.837218056 +0200 @@ -670,8 +670,8 @@ auth_request_want_skip_passdb(struct aut struct auth_passdb *passdb) { /* if mechanism is not supported, skip */ - const char *const *mechs = passdb->passdb->mechanisms; - const char *const *username_filter = passdb->passdb->username_filter; + const char *const *mechs = passdb->mechanisms; + const char *const *username_filter = passdb->username_filter; const char *username; username = request->user; @@ -684,7 +684,7 @@ auth_request_want_skip_passdb(struct aut return TRUE; } - if (passdb->passdb->username_filter != NULL && + if (passdb->username_filter != NULL && !auth_request_username_accepted(username_filter, username)) { auth_request_log_debug(request, request->mech != NULL ? AUTH_SUBSYS_MECH --- src/auth/auth.c.orig 2017-06-26 13:29:36.000000000 +0200 +++ src/auth/auth.c 2022-07-07 19:06:16.607546034 +0200 @@ -86,6 +86,24 @@ auth_passdb_preinit(struct auth *auth, c auth_passdb->override_fields_tmpl = passdb_template_build(auth->pool, set->override_fields); + if (*set->mechanisms == '\0') { + auth_passdb->mechanisms = NULL; + } else if (strcasecmp(set->mechanisms, "none") == 0) { + auth_passdb->mechanisms = (const char *const[]){ NULL }; + } else { + auth_passdb->mechanisms = + (const char *const *)p_strsplit_spaces(auth->pool, + set->mechanisms, " ,"); + } + + if (*set->username_filter == '\0') { + auth_passdb->username_filter = NULL; + } else { + auth_passdb->username_filter = + (const char *const *)p_strsplit_spaces(auth->pool, + set->username_filter, " ,"); + } + /* for backwards compatibility: */ if (set->pass) auth_passdb->result_success = AUTH_DB_RULE_CONTINUE; --- src/auth/auth.h.orig 2017-06-26 13:29:01.000000000 +0200 +++ src/auth/auth.h 2022-07-07 19:06:16.607546034 +0200 @@ -38,6 +38,11 @@ struct auth_passdb { struct passdb_template *default_fields_tmpl; struct passdb_template *override_fields_tmpl; + /* Supported authentication mechanisms, NULL is all, {NULL} is none */ + const char *const *mechanisms; + /* Username filter, NULL is no filter */ + const char *const *username_filter; + enum auth_passdb_skip skip; enum auth_db_rule result_success; enum auth_db_rule result_failure; --- src/auth/passdb.c.orig 2017-06-26 13:29:01.000000000 +0200 +++ src/auth/passdb.c 2022-07-07 19:15:23.986811819 +0200 @@ -223,19 +223,8 @@ passdb_preinit(pool_t pool, const struct passdb->id = ++auth_passdb_id; passdb->iface = *iface; passdb->args = p_strdup(pool, set->args); - if (*set->mechanisms == '\0') { - passdb->mechanisms = NULL; - } else if (strcasecmp(set->mechanisms, "none") == 0) { - passdb->mechanisms = (const char *const[]){NULL}; - } else { - passdb->mechanisms = (const char* const*)p_strsplit_spaces(pool, set->mechanisms, " ,"); - } - - if (*set->username_filter == '\0') { - passdb->username_filter = NULL; - } else { - passdb->username_filter = (const char* const*)p_strsplit_spaces(pool, set->username_filter, " ,"); - } + /* NOTE: if anything else than driver & args are added here, + passdb_find() also needs to be updated. */ array_append(&passdb_modules, &passdb, 1); return passdb; } --- src/auth/passdb.h.orig 2017-06-26 13:29:36.000000000 +0200 +++ src/auth/passdb.h 2022-07-07 19:16:54.283350479 +0200 @@ -62,10 +62,6 @@ struct passdb_module { /* Default password scheme for this module. If cache_key is set, must not be NULL. */ const char *default_pass_scheme; - /* Supported authentication mechanisms, NULL is all, [NULL] is none*/ - const char *const *mechanisms; - /* Username filter, NULL is no filter */ - const char *const *username_filter; /* If blocking is set to TRUE, use child processes to access this passdb. */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor