lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 11 Jul 2011 01:46:46 -0600 From: Jim Cromie <jim.cromie@...il.com> To: jbaron@...hat.com Cc: linux-kernel@...r.kernel.org, bvanassche@....org, joe@...ches.com, gregkh@...e.de, gnb@...h.org, Jim Cromie <jim.cromie@...il.com> Subject: [PATCH 11/21] dynamic_debug: refactor query_matches_callsite out of ddebug_change this makes no behavioral change, its just a code-move. Originally done cuz it looked momentarily to be related to query-vs-query check needed soon. If this function is reused, note that it excludes check of the module; that is done once for the table, this code refactors the test inside the loop over the module's ddebug callsites. Signed-off-by: Jim Cromie <jim.cromie@...il.com> --- lib/dynamic_debug.c | 52 +++++++++++++++++++++++++++++--------------------- 1 files changed, 30 insertions(+), 22 deletions(-) diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index cc8e157..bee1376 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -134,6 +134,35 @@ static char *show_pending_query(struct pending_query *pq) return prbuf_query; } +static int query_matches_callsite(struct _ddebug *dp, + const struct ddebug_query *query) +{ + /* match against the source filename */ + if (query->filename != NULL && + strcmp(query->filename, dp->filename) && + strcmp(query->filename, basename(dp->filename))) + return 0; + + /* match against the function */ + if (query->function != NULL && + strcmp(query->function, dp->function)) + return 0; + + /* match against the format */ + if (query->format != NULL && + strstr(dp->format, query->format) == NULL) + return 0; + + /* match against the line number range */ + if (query->first_lineno && dp->lineno < query->first_lineno) + return 0; + + if (query->last_lineno && dp->lineno > query->last_lineno) + return 0; + + return 1; +} + /* * Search the tables for _ddebug's which match the given * `query' and apply the `flags' and `mask' to them. Tells @@ -161,28 +190,7 @@ static int ddebug_change(const struct ddebug_query *query, for (i = 0 ; i < dt->num_ddebugs ; i++) { struct _ddebug *dp = &dt->ddebugs[i]; - /* match against the source filename */ - if (query->filename != NULL && - strcmp(query->filename, dp->filename) && - strcmp(query->filename, basename(dp->filename))) - continue; - - /* match against the function */ - if (query->function != NULL && - strcmp(query->function, dp->function)) - continue; - - /* match against the format */ - if (query->format != NULL && - strstr(dp->format, query->format) == NULL) - continue; - - /* match against the line number range */ - if (query->first_lineno && - dp->lineno < query->first_lineno) - continue; - if (query->last_lineno && - dp->lineno > query->last_lineno) + if (!query_matches_callsite(dp, query)) continue; nfound++; -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists