Fix e-d-s so that it does not try to allocate all available memory on 64-bit

platforms.  The fix committed is different from that in the PR since the
purpose of this memory was not clarified by the Evolution developers.  The
fix committed casts the require memory size to an unsigned 32-bit integer.
Since the memory required should never exceed the maximum capacity of an
uint32_t, this is not a problem.

Thanks to anholt for tracking down this problem.

See http://bugzilla.gnome.org/show_bug.cgi?id=331099 for more details.

PR:		93215
This commit is contained in:
Joe Marcus Clarke 2006-02-19 22:12:27 +00:00
parent f9c920ad3b
commit 3185a5b9a5
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=156414
2 changed files with 23 additions and 1 deletions

View file

@ -8,7 +8,7 @@
PORTNAME= evolution-data-server
PORTVERSION= 1.4.2.1
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= databases gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME}/1.4

View file

@ -0,0 +1,22 @@
--- camel-object.c.orig Sun Feb 19 17:04:42 2006
+++ camel-object.c Sun Feb 19 17:06:06 2006
@@ -454,7 +454,7 @@ cobject_state_read(CamelObject *obj, FIL
}
/* we batch up the properties and set them in one go */
- if (!(argv = g_try_malloc (sizeof (*argv) + (count - CAMEL_ARGV_MAX) * sizeof (argv->argv[0]))))
+ if (!(argv = g_try_malloc ((guint32) (sizeof (*argv) + (count - CAMEL_ARGV_MAX) * sizeof (argv->argv[0])))))
return -1;
argv->argc = 0;
@@ -534,8 +534,8 @@ cobject_state_write(CamelObject *obj, FI
count = g_slist_length(props);
- arggetv = g_malloc0(sizeof(*arggetv) + (count - CAMEL_ARGV_MAX) * sizeof(arggetv->argv[0]));
- argv = g_malloc0(sizeof(*argv) + (count - CAMEL_ARGV_MAX) * sizeof(argv->argv[0]));
+ arggetv = g_malloc0((guint32) (sizeof(*arggetv) + (count - CAMEL_ARGV_MAX) * sizeof(arggetv->argv[0])));
+ argv = g_malloc0((guint32) (sizeof(*argv) + (count - CAMEL_ARGV_MAX) * sizeof(argv->argv[0])));
l = props;
i = 0;
while (l) {