[evolution-data-server] [IMAPX] Crash on QRESYNC line formatting on 32bit platform
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] [IMAPX] Crash on QRESYNC line formatting on 32bit platform
- Date: Mon, 18 Oct 2010 14:49:02 +0000 (UTC)
commit 753a9c25cfc6b76bee4222eb22e948175781c576
Author: Milan Crha <mcrha redhat com>
Date: Mon Oct 18 16:47:19 2010 +0200
[IMAPX] Crash on QRESYNC line formatting on 32bit platform
camel/providers/imapx/camel-imapx-server.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 635b1d2..20082eb 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -576,7 +576,7 @@ imapx_command_addv (CamelIMAPXCommand *ic, const gchar *fmt, va_list ap)
left = FALSE;
fill = FALSE;
zero = FALSE;
- llong = FALSE;
+ llong = 0;
do {
c = *p++;
@@ -596,8 +596,8 @@ imapx_command_addv (CamelIMAPXCommand *ic, const gchar *fmt, va_list ap)
break;
} while ((c = *p++));
- if (c == 'l') {
- llong = TRUE;
+ while (c == 'l') {
+ llong++;
c = *p++;
}
@@ -691,12 +691,18 @@ imapx_command_addv (CamelIMAPXCommand *ic, const gchar *fmt, va_list ap)
break;
case 'd': /* int/unsigned */
case 'u':
- if (llong) {
+ if (llong == 1) {
l = va_arg (ap, glong);
c(ic->is->tagprefix, "got glong '%d'\n", (gint)l);
memcpy (buffer, start, p-start);
buffer[p-start] = 0;
camel_stream_printf ((CamelStream *)ic->mem, buffer, l);
+ } else if (llong == 2) {
+ guint64 i64 = va_arg (ap, guint64);
+ c(ic->is->tagprefix, "got guint64 '%d'\n", (gint)i64);
+ memcpy (buffer, start, p-start);
+ buffer[p-start] = 0;
+ camel_stream_printf ((CamelStream *)ic->mem, buffer, i64);
} else {
d = va_arg (ap, gint);
c(ic->is->tagprefix, "got gint '%d'\n", d);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]