diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 24e7d92d1ad..51f5d75e49b 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1839,7 +1839,8 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose) Security_context *tmp_sctx= tmp->security_ctx; struct st_my_thread_var *mysys_var; if ((tmp->vio_ok() || tmp->system_thread) && - (!user || (tmp_sctx->user && !strcmp(tmp_sctx->user, user)))) + (!user || (!tmp->system_thread && tmp_sctx->user && + !strcmp(tmp_sctx->user, user)))) { thread_info *thd_info= new thread_info; @@ -1949,7 +1950,8 @@ int fill_schema_processlist(THD* thd, TABLE_LIST* tables, COND* cond) const char *val, *db; if ((!tmp->vio_ok() && !tmp->system_thread) || - (user && (!tmp_sctx->user || strcmp(tmp_sctx->user, user)))) + (user && (tmp->system_thread || !tmp_sctx->user || + strcmp(tmp_sctx->user, user)))) continue; restore_record(table, s->default_values);