diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-10-12 05:57:20 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-10-12 05:57:20 +0800 |
commit | d965c00a22feafbb505a78d1414baa5e2ea39bb8 (patch) | |
tree | 3da3a2efd68e9c615764f14ff37e36ba8d8ecfb7 /camel | |
parent | df87ab49497be51b02a8457a26bf3e16b89d127d (diff) | |
download | gsoc2013-evolution-d965c00a22feafbb505a78d1414baa5e2ea39bb8.tar.gz gsoc2013-evolution-d965c00a22feafbb505a78d1414baa5e2ea39bb8.tar.zst gsoc2013-evolution-d965c00a22feafbb505a78d1414baa5e2ea39bb8.zip |
Same.
2001-10-11 Jeffrey Stedfast <fejj@ximian.com>
* camel-tcp-stream-ssl.c (ssl_cert_is_saved): Same.
* camel-tcp-stream-openssl.c (ssl_cert_is_saved): Instead of
opening the file, stat it and make sure that it belongs to us.
svn path=/trunk/; revision=13600
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 7 | ||||
-rw-r--r-- | camel/camel-tcp-stream-openssl.c | 13 | ||||
-rw-r--r-- | camel/camel-tcp-stream-ssl.c | 13 |
3 files changed, 23 insertions, 10 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index b1623c80d5..85dc5005a5 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,10 @@ +2001-10-11 Jeffrey Stedfast <fejj@ximian.com> + + * camel-tcp-stream-ssl.c (ssl_cert_is_saved): Same. + + * camel-tcp-stream-openssl.c (ssl_cert_is_saved): Instead of + opening the file, stat it and make sure that it belongs to us. + 2001-10-10 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-openssl.c (ssl_verify): Same hack as below. diff --git a/camel/camel-tcp-stream-openssl.c b/camel/camel-tcp-stream-openssl.c index f83b309de7..6dedeadab7 100644 --- a/camel/camel-tcp-stream-openssl.c +++ b/camel/camel-tcp-stream-openssl.c @@ -499,16 +499,19 @@ static gboolean ssl_cert_is_saved (const char *certid) { char *filename; - int fd; + struct stat st; + int ret; filename = g_strdup_printf ("%s/.camel_certs/%s", getenv ("HOME"), certid); - fd = open (filename, O_RDONLY); + if (stat (filename, &st) == -1) { + g_free (filename); + return FALSE; + } + g_free (filename); - if (fd != -1) - close (fd); - return fd != -1; + return st.st_uid == getuid (); } static int diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c index fa0da4041a..bab01e4d4c 100644 --- a/camel/camel-tcp-stream-ssl.c +++ b/camel/camel-tcp-stream-ssl.c @@ -366,16 +366,19 @@ static gboolean ssl_cert_is_saved (const char *certid) { char *filename; - int fd; + struct stat st; + int ret; filename = g_strdup_printf ("%s/.camel_certs/%s", getenv ("HOME"), certid); - fd = open (filename, O_RDONLY); + if (stat (filename, &st) == -1) { + g_free (filename); + return FALSE; + } + g_free (filename); - if (fd != -1) - close (fd); - return fd != -1; + return st.st_uid == getuid (); } static SECStatus |