# HG changeset patch # User Baofeng # Date 1460398848 -10800 # Node ID eb456cb34cac2c5ff1269fb0f277a792791b55e9 # Parent a6116b23e7e98e2d18fb217d097fc2a6f67a43ac auth: do NOT feed p_strconcat() with NULL p_strconcat will never take NULL as an valid argument. Check possible NULL string before calling it. diff -r a6116b23e7e9 -r eb456cb34cac src/auth/auth.c --- a/src/auth/auth.c Sat Dec 17 11:31:42 2016 +0200 +++ b/src/auth/auth.c Mon Apr 11 21:20:48 2016 +0300 @@ -95,9 +95,14 @@ auth_passdb->passdb = passdb_preinit(auth->pool, set); /* make sure any %variables in default_fields exist in cache_key */ - auth_passdb->cache_key = - p_strconcat(auth->pool, auth_passdb->passdb->default_cache_key, - set->default_fields, NULL); + if (auth_passdb->passdb->default_cache_key != NULL) { + auth_passdb->cache_key = + p_strconcat(auth->pool, auth_passdb->passdb->default_cache_key, + set->default_fields, NULL); + } + else { + auth_passdb->cache_key = NULL; + } } static void @@ -127,9 +132,14 @@ auth_userdb->userdb = userdb_preinit(auth->pool, set); /* make sure any %variables in default_fields exist in cache_key */ - auth_userdb->cache_key = - p_strconcat(auth->pool, auth_userdb->userdb->default_cache_key, - set->default_fields, NULL); + if (auth_userdb->userdb->default_cache_key != NULL) { + auth_userdb->cache_key = + p_strconcat(auth->pool, auth_userdb->userdb->default_cache_key, + set->default_fields, NULL); + } + else { + auth_userdb->cache_key = NULL; + } } static bool auth_passdb_list_have_verify_plain(const struct auth *auth)