/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2009 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#ifdef HAVE_CONFIG_H
# include "config.h"
+#include "claws-features.h"
#endif
#define _GNU_SOURCE
#include "utils.h"
#include "gtkutils.h"
#include "passcrypt.h"
-#include "base64.h"
#include "codeconv.h"
#define CL(x) (((gulong) (x) >> (gulong) 8) & 0xFFUL)
case P_PASSWORD:
g_free(*((gchar **)param[i].data));
if (value[0] == '!') {
- gchar tmp[1024];
- gint len;
-
- len = base64_decode(tmp, &value[1], strlen(value) - 1);
- passcrypt_decrypt(tmp, len);
- tmp[len] = '\0';
+ gchar *tmp, buf[1024];
+ gsize len;
+
+ tmp = g_base64_decode(&value[1], &len);
+ g_strlcat(buf, tmp, 1024);
+ g_free(tmp);
+ buf[len] = '\0';
+ passcrypt_decrypt(buf, len);
*((gchar **)param[i].data) =
- *tmp ? g_strdup(tmp) : NULL;
+ *buf ? g_strdup(buf) : NULL;
} else {
*((gchar **)param[i].data) =
*value ? g_strdup(value) : NULL;
break;
case P_PASSWORD:
{
- gchar *tmp = NULL, tmp2[1024] = {0};
+ gchar *tmp = NULL, *tmp2 = NULL;
tmp = *((gchar **)param[i].data);
if (tmp) {
tmp = g_strdup(tmp);
len = strlen(tmp);
passcrypt_encrypt(tmp, len);
- base64_encode(tmp2, tmp, len);
+ tmp2 = g_base64_encode(tmp, len);
g_free(tmp);
tmp = tmp2;
}
g_strconcat(get_home_dir(),
param[i].defval + 1,
NULL);
- else if (param[i].defval[0] != '\0')
+ else
*((gchar **)param[i].data) =
g_strdup(param[i].defval);
- else
- *((gchar **)param[i].data) = NULL;
} else
*((gchar **)param[i].data) = NULL;
break;