From a561ef8c49efbb8fa101671e801d4641196e77b9 Mon Sep 17 00:00:00 2001 From: dantok Date: Sun, 25 Jan 2015 20:17:32 +0100 Subject: [PATCH 1/4] Fixed emptying avatar_path if the path is too long. --- src/settings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/settings.c b/src/settings.c index 95bd487..ff490e0 100644 --- a/src/settings.c +++ b/src/settings.c @@ -289,7 +289,7 @@ int settings_load(struct user_settings *s, const char *patharg) if ( config_setting_lookup_string(setting, tox_strings.avatar_path, &str) ) { snprintf(s->avatar_path, sizeof(s->avatar_path), "%s", str); - int len = strlen(s->avatar_path); + int len = strlen(str); if (len >= sizeof(s->avatar_path)) s->avatar_path[0] = '\0'; From 37b3b5a5ed91cbcaa6aa37185448735e849a060c Mon Sep 17 00:00:00 2001 From: dantok Date: Sun, 25 Jan 2015 20:48:02 +0100 Subject: [PATCH 2/4] Fix an edge case when obtaining home directory. Make the path to home directory empty before calling get_home_dir(), otherwise if the call fails, the contents are undefined. --- src/autocomplete.c | 1 + src/configdir.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/autocomplete.c b/src/autocomplete.c index 1c7c94b..982879a 100644 --- a/src/autocomplete.c +++ b/src/autocomplete.c @@ -210,6 +210,7 @@ static void complt_home_dir(ToxWindow *self, char *path, int pathsize, const cha ChatContext *ctx = self->chatwin; char homedir[MAX_STR_SIZE]; + homedir[0] = '\0'; get_home_dir(homedir, sizeof(homedir)); char newline[MAX_STR_SIZE]; diff --git a/src/configdir.c b/src/configdir.c index 9bc6744..a8f4b85 100644 --- a/src/configdir.c +++ b/src/configdir.c @@ -67,6 +67,7 @@ void get_home_dir(char *home, int size) char *get_user_config_dir(void) { char home[NSS_BUFLEN_PASSWD]; + home[0] = '\0'; get_home_dir(home, sizeof(home)); char *user_config_dir; From eeeaf8d7071a081ea4186ab768d83700e560c790 Mon Sep 17 00:00:00 2001 From: dantok Date: Sun, 25 Jan 2015 21:52:07 +0100 Subject: [PATCH 3/4] Update autocomplete.c --- src/autocomplete.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/autocomplete.c b/src/autocomplete.c index 982879a..5b6af44 100644 --- a/src/autocomplete.c +++ b/src/autocomplete.c @@ -209,8 +209,7 @@ static void complt_home_dir(ToxWindow *self, char *path, int pathsize, const cha { ChatContext *ctx = self->chatwin; - char homedir[MAX_STR_SIZE]; - homedir[0] = '\0'; + char homedir[MAX_STR_SIZE] = {0}; get_home_dir(homedir, sizeof(homedir)); char newline[MAX_STR_SIZE]; From c8a4f88ff3f5df455b8d796bc56e8c144a0b2043 Mon Sep 17 00:00:00 2001 From: dantok Date: Sun, 25 Jan 2015 21:53:13 +0100 Subject: [PATCH 4/4] Update configdir.c --- src/configdir.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/configdir.c b/src/configdir.c index a8f4b85..8a9f60c 100644 --- a/src/configdir.c +++ b/src/configdir.c @@ -66,8 +66,7 @@ void get_home_dir(char *home, int size) */ char *get_user_config_dir(void) { - char home[NSS_BUFLEN_PASSWD]; - home[0] = '\0'; + char home[NSS_BUFLEN_PASSWD] = {0}; get_home_dir(home, sizeof(home)); char *user_config_dir;