diff options
Diffstat (limited to 'panels/user-accounts')
-rw-r--r-- | panels/user-accounts/cc-user-image.c | 49 |
1 files changed, 5 insertions, 44 deletions
diff --git a/panels/user-accounts/cc-user-image.c b/panels/user-accounts/cc-user-image.c index a8197c369..d8a871967 100644 --- a/panels/user-accounts/cc-user-image.c +++ b/panels/user-accounts/cc-user-image.c @@ -32,39 +32,6 @@ struct _CcUserImage { G_DEFINE_TYPE (CcUserImage, cc_user_image, GTK_TYPE_IMAGE) -#define MAX_FILE_SIZE 65536 - -static gboolean -check_user_file (const char *filename, - gssize max_file_size) -{ - struct stat fileinfo; - - if (max_file_size < 0) { - max_file_size = G_MAXSIZE; - } - - /* Exists/Readable? */ - if (stat (filename, &fileinfo) < 0) { - g_debug ("File does not exist"); - return FALSE; - } - - /* Is a regular file */ - if (G_UNLIKELY (!S_ISREG (fileinfo.st_mode))) { - g_debug ("File is not a regular file"); - return FALSE; - } - - /* Size is sane? */ - if (G_UNLIKELY (fileinfo.st_size > max_file_size)) { - g_debug ("File is too large"); - return FALSE; - } - - return TRUE; -} - static cairo_surface_t * render_user_icon (ActUser *user, gint icon_size, @@ -72,7 +39,6 @@ render_user_icon (ActUser *user, { g_autoptr(GdkPixbuf) source_pixbuf = NULL; GdkPixbuf *pixbuf = NULL; - gboolean res; GError *error; const gchar *icon_file; cairo_surface_t *surface = NULL; @@ -83,17 +49,12 @@ render_user_icon (ActUser *user, icon_file = act_user_get_icon_file (user); pixbuf = NULL; if (icon_file) { - res = check_user_file (icon_file, MAX_FILE_SIZE); - if (res) { - source_pixbuf = gdk_pixbuf_new_from_file_at_size (icon_file, - icon_size * scale, - icon_size * scale, - NULL); + source_pixbuf = gdk_pixbuf_new_from_file_at_size (icon_file, + icon_size * scale, + icon_size * scale, + NULL); + if (source_pixbuf) pixbuf = round_image (source_pixbuf, icon_size * scale); - } - else { - pixbuf = NULL; - } } if (pixbuf != NULL) { |