user-accounts: Remove custom file size limit for avatars

accountsservice has 1 MB limit for avatars, however, users panels
refuses to show avatars bigger than 64 KB for some historical reasons.
But you can still successfully set avatars up to the accountsservice
limit. Let's remove this custom limit and other redundant check and
rely just on accountsservice limits and errors from GDK.

https://bugzilla.gnome.org/show_bug.cgi?id=792243
This commit is contained in:
Ondrej Holy 2018-02-07 15:45:07 +01:00 committed by Georges Basile Stavracas Neto
parent addc65a6fd
commit 03bf65f78f

View file

@ -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,18 +49,13 @@ 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);
if (source_pixbuf)
pixbuf = round_image (source_pixbuf, icon_size * scale);
}
else {
pixbuf = NULL;
}
}
if (pixbuf != NULL) {
goto out;