From 3c3b702d1f80cb05db741ba65bfd27d82d5d7104 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Fri, 3 Nov 2000 22:56:19 +0000 Subject: Don't allow attaching anything but regular files. 2000-11-03 Jeffrey Stedfast * e-msg-composer-attachment.c (e_msg_composer_attachment_new): Don't allow attaching anything but regular files. svn path=/trunk/; revision=6384 --- composer/e-msg-composer-attachment.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'composer/e-msg-composer-attachment.c') diff --git a/composer/e-msg-composer-attachment.c b/composer/e-msg-composer-attachment.c index 58484d5f98..bd9ae43b3b 100644 --- a/composer/e-msg-composer-attachment.c +++ b/composer/e-msg-composer-attachment.c @@ -170,42 +170,47 @@ e_msg_composer_attachment_new (const gchar *file_name) EMsgComposerAttachment *new; CamelMimePart *part; CamelDataWrapper *wrapper; - CamelStream *data; + CamelStream *stream; struct stat statbuf; gchar *mime_type; - + g_return_val_if_fail (file_name != NULL, NULL); - - data = camel_stream_fs_new_with_name (file_name, O_RDONLY, 0); - if (!data) + + if (stat (file_name, &statbuf) < 0) + return; + + /* return if it's not a regular file */ + if (!S_ISREG (statbuf.st_dev)) + return; + + stream = camel_stream_fs_new_with_name (file_name, O_RDONLY, 0); + if (!stream) return NULL; wrapper = camel_data_wrapper_new (); - camel_data_wrapper_construct_from_stream (wrapper, data); - camel_object_unref (CAMEL_OBJECT (data)); + camel_data_wrapper_construct_from_stream (wrapper, stream); + camel_object_unref (CAMEL_OBJECT (stream)); mime_type = get_mime_type (file_name); if (mime_type) { camel_data_wrapper_set_mime_type (wrapper, mime_type); g_free (mime_type); } else camel_data_wrapper_set_mime_type (wrapper, "application/octet-stream"); - + part = camel_mime_part_new (); camel_medium_set_content_object (CAMEL_MEDIUM (part), wrapper); camel_object_unref (CAMEL_OBJECT (wrapper)); - + camel_mime_part_set_disposition (part, "attachment"); if (strchr (file_name, '/')) camel_mime_part_set_filename (part, strrchr (file_name, '/') + 1); else camel_mime_part_set_filename (part, file_name); - + new = e_msg_composer_attachment_new_from_mime_part (part); - if (stat (file_name, &statbuf) < 0) - new->size = 0; - else - new->size = statbuf.st_size; + + new->size = statbuf.st_size; new->guessed_type = TRUE; - + return new; } -- cgit v1.2.3