From 434a97d09f1c8d6ec67f51b27434c63b32ad8792 Mon Sep 17 00:00:00 2001 From: Kichan Kwon Date: Fri, 12 Aug 2016 13:13:02 +0900 Subject: [PATCH] common : use strncmp to compare string - strstr can return false positive if first string is the prefix of second string Change-Id: I3e2c733e5319c95ecac9235fad7478d212d87b5c Signed-off-by: Kichan Kwon --- src/block/block-monitor.c | 2 +- src/block/block.c | 2 +- src/common/config-parser.h | 2 +- src/proc-stat/proc-appusage.c | 2 +- src/proc-stat/proc-main.c | 3 ++- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/block/block-monitor.c b/src/block/block-monitor.c index 9f9c98f..f9daf33 100644 --- a/src/block/block-monitor.c +++ b/src/block/block-monitor.c @@ -77,7 +77,7 @@ static gboolean find_hash(gpointer key, gpointer value, gpointer user_data) if (!user_data || !key) return FALSE; - return (strstr((char *)user_data, (char *)key) ? TRUE : FALSE); + return MATCH((char*)user_data, (char*)key); } int convert_fanotify_mode(const char *mode) diff --git a/src/block/block.c b/src/block/block.c index 84ab784..3ffa85e 100755 --- a/src/block/block.c +++ b/src/block/block.c @@ -95,7 +95,7 @@ static int load_block_config(struct parse_result *result, void *user_data) if (!result->section || !result->name) return RESOURCED_ERROR_NO_DATA; - if (!strstr(result->section, BLOCK_CONF_SECTION)) + if (!MATCH(result->section, BLOCK_CONF_SECTION)) return RESOURCED_ERROR_NO_DATA; if (MATCH(result->name, "activate")) { diff --git a/src/common/config-parser.h b/src/common/config-parser.h index a04e646..9a48626 100644 --- a/src/common/config-parser.h +++ b/src/common/config-parser.h @@ -23,7 +23,7 @@ #include #include -#define MATCH(a, b) (!strncmp(a, b, strlen(a))) +#define MATCH(a, b) (!strncmp(a, b, strlen(a) + 1) ? 1 : 0) #define SET_CONF(a, b) (a = (b > 0.0 ? b : a)) struct parse_result { diff --git a/src/proc-stat/proc-appusage.c b/src/proc-stat/proc-appusage.c index f5c6dd9..f9adbfb 100644 --- a/src/proc-stat/proc-appusage.c +++ b/src/proc-stat/proc-appusage.c @@ -62,7 +62,7 @@ static gboolean find_hash(gpointer key, gpointer value, gpointer user_data) if (!user_data || !key) return FALSE; - return (strstr((char *)user_data, (char *)key) ? TRUE : FALSE); + return MATCH((char*)user_data, (char*)key); } static void print_favorite_list(gpointer key, gpointer value, gpointer user_data) diff --git a/src/proc-stat/proc-main.c b/src/proc-stat/proc-main.c index 9b945a8..47ac931 100644 --- a/src/proc-stat/proc-main.c +++ b/src/proc-stat/proc-main.c @@ -43,6 +43,7 @@ #include "procfs.h" #include "appinfo-list.h" #include "util.h" +#include "config-parser.h" static GHashTable *proc_exclude_list; static Ecore_File_Monitor *exclude_list_monitor; @@ -488,7 +489,7 @@ static gboolean find_excluded(gpointer key, gpointer value, gpointer user_data) if (!user_data || !key) return FALSE; - return (strstr((char *)user_data, (char *)key) ? TRUE : FALSE); + return MATCH((char*)user_data, (char*)key); } int proc_get_id_info(struct proc_status *ps, char **app_name, char **pkg_name) -- 2.7.4