diff options
Diffstat (limited to 'src/config/accounts.c')
-rw-r--r-- | src/config/accounts.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/config/accounts.c b/src/config/accounts.c index 784651ad..2e7092a5 100644 --- a/src/config/accounts.c +++ b/src/config/accounts.c @@ -230,9 +230,12 @@ accounts_get_account(const char * const name) // Evaluate as shell command to retrieve password if (eval_password != NULL) { FILE *stream = popen(eval_password, "r"); - // Limit to 100 bytes to prevent overflows in the case of a poorly chosen command - password = g_malloc(100); - password = fgets(password, 100, stream); + // Limit to READ_BUF_SIZE bytes to prevent overflows in the case of a poorly chosen command + password = g_malloc(READ_BUF_SIZE); + gchar *result = fgets(password, READ_BUF_SIZE, stream); + if (result != NULL) { + password = result; + } } gboolean enabled = g_key_file_get_boolean(accounts, name, "enabled", NULL); |