summaryrefslogtreecommitdiffstats
path: root/mail/evolution/files/patch-90_build_with_new_pisock
diff options
context:
space:
mode:
Diffstat (limited to 'mail/evolution/files/patch-90_build_with_new_pisock')
-rw-r--r--mail/evolution/files/patch-90_build_with_new_pisock907
1 files changed, 0 insertions, 907 deletions
diff --git a/mail/evolution/files/patch-90_build_with_new_pisock b/mail/evolution/files/patch-90_build_with_new_pisock
deleted file mode 100644
index ffa2656..0000000
--- a/mail/evolution/files/patch-90_build_with_new_pisock
+++ /dev/null
@@ -1,907 +0,0 @@
-diff -Nur evolution-2.8.0/addressbook/conduit/address-conduit.c evolution-2.8.0.new/addressbook/conduit/address-conduit.c
---- addressbook/conduit/address-conduit.c.orig 2005-12-06 09:43:37.000000000 +0100
-+++ addressbook/conduit/address-conduit.c 2006-09-20 18:47:49.000000000 +0200
-@@ -462,6 +462,7 @@
- {
- static char buff[ 4096 ];
- struct Address addr;
-+ pi_buffer_t piBuf;
-
- if (remote == NULL) {
- sprintf (buff, "[NULL]");
-@@ -469,7 +470,10 @@
- }
-
- memset (&addr, 0, sizeof (struct Address));
-- unpack_Address (&addr, remote->record, remote->length);
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_Address(&addr, &piBuf, address_v1);
-
- g_snprintf (buff, 4096, "['%s' '%s' '%s']",
- addr.entry[entryLastname] ?
-@@ -786,12 +790,23 @@
- }
- }
-
-+/* convert a local EAddrLocalRecord to a GnomePilotRecord for the PDA
-+ *
-+ * @param local local Evolution address record
-+ * @param ctxt conduit context
-+ * @param record record to use for GnomePilotRecord. Allow the calling
-+ * function to determine if the record should be allocated
-+ * dynamically or statically.
-+ * @param maxRecordLen size of *record (max amount of data that can be put
-+ * into record)
-+ */
- static GnomePilotRecord
- local_record_to_pilot_record (EAddrLocalRecord *local,
-- EAddrConduitContext *ctxt)
-+ EAddrConduitContext *ctxt,
-+ unsigned char *record,
-+ int maxRecordLen)
- {
- GnomePilotRecord p;
-- static char record[0xffff];
-
- g_assert (local->addr != NULL );
-
-@@ -802,10 +817,25 @@
- p.attr = local->local.attr;
- p.archived = local->local.archived;
- p.secret = local->local.secret;
-+
-+ memset(record, 0, maxRecordLen);
-
- /* Generate pilot record structure */
-- p.record = record;
-- p.length = pack_Address (local->addr, p.record, 0xffff);
-+ {
-+ pi_buffer_t piBuf;
-+ memset (&piBuf, 0, sizeof (piBuf));
-+
-+ pack_Address(local->addr, &piBuf, address_v1);
-+ if(piBuf.used > 0) {
-+ memcpy(record, piBuf.data, MIN(piBuf.used, maxRecordLen) );
-+ }
-+
-+ p.length = piBuf.used;
-+ p.record = record;
-+ if(piBuf.data) {
-+ free(piBuf.data);
-+ }
-+ }
-
- return p;
- }
-@@ -834,16 +864,26 @@
- */
- if (local->local.ID != 0) {
- struct Address addr;
-- char record[0xffff];
-+ pi_buffer_t *piBuf;
- int cat = 0;
-+ int dlpReadRetval = 0;
-+
-
-- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
-- ctxt->dbi->db_handle,
-- local->local.ID, &record,
-- NULL, NULL, NULL, &cat) > 0) {
-+ piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN( _("local_record_from_ecard: no more memory to allocate") );
-+ return;
-+ }
-+ dlpReadRetval = dlp_ReadRecordById(ctxt->dbi->pilot_socket,
-+ ctxt->dbi->db_handle,
-+ local->local.ID, piBuf,
-+ NULL, NULL, &cat);
-+
-+
-+ if (dlpReadRetval > 0) {
- local->local.category = cat;
- memset (&addr, 0, sizeof (struct Address));
-- unpack_Address (&addr, record, 0xffff);
-+ unpack_Address(&addr, piBuf, address_v1);
- for (i = 0; i < 5; i++) {
- if (addr.entry[entryPhone1 + i])
- local->addr->entry[entryPhone1 + i] =
-@@ -858,6 +898,8 @@
- }
- free_Address (&addr);
- }
-+
-+ pi_buffer_free(piBuf);
- }
-
- local->addr->entry[entryFirstname] = e_pilot_utf8_to_pchar (e_contact_get_const (contact, E_CONTACT_GIVEN_NAME));
-@@ -1022,7 +1064,13 @@
-
- g_return_val_if_fail(remote!=NULL,NULL);
- memset (&address, 0, sizeof (struct Address));
-- unpack_Address (&address, remote->record, remote->length);
-+ {
-+ pi_buffer_t piBuf;
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_Address(&address, &piBuf, address_v1);
-+ }
-
- if (in_contact == NULL)
- contact = e_contact_new ();
-@@ -1212,7 +1260,7 @@
- EBookQuery *query;
- GList *l;
- int len;
-- unsigned char *buf;
-+ pi_buffer_t *piBuf;
- char *filename;
- char *change_id;
- char *auth;
-@@ -1302,9 +1350,14 @@
- gnome_pilot_conduit_sync_abs_set_num_updated_local_records (abs_conduit, mod_records);
- gnome_pilot_conduit_sync_abs_set_num_deleted_local_records(abs_conduit, del_records);
-
-- buf = (unsigned char*)g_malloc (0xffff);
-- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-- (unsigned char *)buf, 0xffff);
-+ piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN (_("pre_sync(): Error allocating pi_buffer_t memory"));
-+ gnome_pilot_conduit_error (conduit,
-+ _("pre_sync(): Error allocating pi_buffer_t memory"));
-+ return -1;
-+ }
-+ len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0, -1, piBuf);
-
- if (len < 0) {
- WARN (_("Could not read pilot's Address application block"));
-@@ -1313,8 +1366,8 @@
- _("Could not read pilot's Address application block"));
- return -1;
- }
-- unpack_AddressAppInfo (&(ctxt->ai), buf, len);
-- g_free (buf);
-+ unpack_AddressAppInfo (&(ctxt->ai), piBuf->data, len);
-+ pi_buffer_free(piBuf);
-
- check_for_slow_setting (conduit, ctxt);
- if (ctxt->cfg->sync_type == GnomePilotConduitSyncTypeCopyToPilot
-@@ -1494,6 +1547,7 @@
- {
- GnomePilotRecord local_pilot;
- int retval = 0;
-+ static unsigned char record[0xffff];
-
- LOG (g_message ("compare: local=%s remote=%s...\n",
- print_local (local), print_remote (remote)));
-@@ -1501,7 +1555,7 @@
- g_return_val_if_fail (local != NULL, -1);
- g_return_val_if_fail (remote != NULL, -1);
-
-- local_pilot = local_record_to_pilot_record (local, ctxt);
-+ local_pilot = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- if (remote->length != local_pilot.length
- || memcmp (local_pilot.record, remote->record, remote->length))
-@@ -1693,9 +1747,11 @@
- GnomePilotRecord *remote,
- EAddrConduitContext *ctxt)
- {
-+ static unsigned char record[0xffff];
-+
- LOG (g_message ( "prepare: encoding local %s\n", print_local (local) ));
-
-- *remote = local_record_to_pilot_record (local, ctxt);
-+ *remote = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- return 0;
- }
-diff -Nur evolution-2.8.0/calendar/conduits/calendar/calendar-conduit.c evolution-2.8.0.new/calendar/conduits/calendar/calendar-conduit.c
---- calendar/conduits/calendar/calendar-conduit.c.orig 2005-12-23 05:39:34.000000000 +0100
-+++ calendar/conduits/calendar/calendar-conduit.c 2006-09-20 18:48:56.000000000 +0200
-@@ -413,6 +413,7 @@
- {
- static char buff[ 4096 ];
- struct Appointment appt;
-+ pi_buffer_t piBuf;
-
- if (remote == NULL) {
- sprintf (buff, "[NULL]");
-@@ -420,7 +421,10 @@
- }
-
- memset (&appt, 0, sizeof (struct Appointment));
-- unpack_Appointment (&appt, remote->record, remote->length);
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_Appointment(&appt, &piBuf, datebook_v1);
-
- g_snprintf (buff, 4096, "[%ld %ld '%s' '%s']",
- mktime (&appt.begin),
-@@ -813,12 +817,23 @@
- return TRUE;
- }
-
-+/* convert a local ECalLocalRecord to a GnomePilotRecord for the PDA
-+ *
-+ * @param local local Evolution Calendar record
-+ * @param ctxt conduit context
-+ * @param record record to use for GnomePilotRecord. Allow the calling
-+ * function to determine if the record should be allocated
-+ * dynamically or statically.
-+ * @param maxRecordLen size of *record (max amount of data that can be put
-+ * into record)
-+ */
- static GnomePilotRecord
- local_record_to_pilot_record (ECalLocalRecord *local,
-- ECalConduitContext *ctxt)
-+ ECalConduitContext *ctxt,
-+ unsigned char *record,
-+ int maxRecordLen)
- {
- GnomePilotRecord p;
-- static char record[0xffff];
-
- g_assert (local->comp != NULL);
- g_assert (local->appt != NULL );
-@@ -829,9 +844,25 @@
- p.archived = local->local.archived;
- p.secret = local->local.secret;
-
-+ memset(record, 0, maxRecordLen);
-+
- /* Generate pilot record structure */
-- p.record = record;
-- p.length = pack_Appointment (local->appt, p.record, 0xffff);
-+ {
-+
-+ pi_buffer_t piBuf;
-+ memset (&piBuf, 0, sizeof (piBuf));
-+
-+ pack_Appointment(local->appt, &piBuf, datebook_v1);
-+ if(piBuf.used > 0) {
-+ memcpy(record, piBuf.data, MIN(piBuf.used, maxRecordLen) );
-+ }
-+
-+ p.length = piBuf.used;
-+ p.record = record;
-+ if(piBuf.data) {
-+ free(piBuf.data);
-+ }
-+ }
-
- return p;
- }
-@@ -867,22 +898,31 @@
- * we don't overwrite them
- */
- if (local->local.ID != 0) {
-- struct Appointment appt;
-- char record[0xffff];
-+ struct Appointment appt;
-+ pi_buffer_t *piBuf;
- int cat = 0;
-+ int dlpReadRetval = 0;
-
-- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
-- ctxt->dbi->db_handle,
-- local->local.ID, &record,
-- NULL, NULL, NULL, &cat) > 0) {
-+ piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN( _("local_record_from_comp: no more memory to allocate") );
-+ return;
-+ }
-+ dlpReadRetval = dlp_ReadRecordById (ctxt->dbi->pilot_socket,
-+ ctxt->dbi->db_handle,
-+ local->local.ID, piBuf,
-+ NULL, NULL, &cat);
-+
-+ if (dlpReadRetval > 0) {
- local->local.category = cat;
- memset (&appt, 0, sizeof (struct Appointment));
-- unpack_Appointment (&appt, record, 0xffff);
-+ unpack_Appointment (&appt, piBuf, datebook_v1);
- local->appt->alarm = appt.alarm;
- local->appt->advance = appt.advance;
- local->appt->advanceUnits = appt.advanceUnits;
- free_Appointment (&appt);
- }
-+ pi_buffer_free(piBuf);
- }
-
- /* STOP: don't replace these with g_strdup, since free_Appointment
-@@ -1144,7 +1184,13 @@
- g_return_val_if_fail (remote != NULL, NULL);
-
- memset (&appt, 0, sizeof (struct Appointment));
-- unpack_Appointment (&appt, remote->record, remote->length);
-+ {
-+ pi_buffer_t piBuf;
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_Appointment(&appt, &piBuf, datebook_v1);
-+ }
-
- if (in_comp == NULL) {
- comp = e_cal_component_new ();
-@@ -1409,7 +1455,7 @@
- GnomePilotConduitSyncAbs *abs_conduit;
- GList *removed = NULL, *added = NULL, *l;
- int len;
-- unsigned char *buf;
-+ pi_buffer_t *piBuf;
- char *filename, *change_id;
- icalcomponent *icalcomp;
- gint num_records, add_records = 0, mod_records = 0, del_records = 0;
-@@ -1521,9 +1567,14 @@
- gnome_pilot_conduit_sync_abs_set_num_updated_local_records (abs_conduit, mod_records);
- gnome_pilot_conduit_sync_abs_set_num_deleted_local_records(abs_conduit, del_records);
-
-- buf = (unsigned char*)g_malloc (0xffff);
-- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-- (unsigned char *)buf, 0xffff);
-+ piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN (_("pre_sync(): Error allocating pi_buffer_t memory"));
-+ gnome_pilot_conduit_error (conduit,
-+ _("pre_sync(): Error allocating pi_buffer_t memory"));
-+ return -1;
-+ }
-+ len = dlp_ReadAppBlock(dbi->pilot_socket, dbi->db_handle, 0, -1, piBuf);
-
- if (len < 0) {
- WARN (_("Could not read pilot's Calendar application block"));
-@@ -1532,8 +1583,8 @@
- _("Could not read pilot's Calendar application block"));
- return -1;
- }
-- unpack_AppointmentAppInfo (&(ctxt->ai), buf, len);
-- g_free (buf);
-+ unpack_AppointmentAppInfo (&(ctxt->ai), piBuf->data, len);
-+ pi_buffer_free(piBuf);
-
- check_for_slow_setting (conduit, ctxt);
- if (ctxt->cfg->sync_type == GnomePilotConduitSyncTypeCopyToPilot
-@@ -1715,6 +1766,7 @@
- /* used by the quick compare */
- GnomePilotRecord local_pilot;
- int retval = 0;
-+ static unsigned char record[0xffff];
-
- LOG (g_message ("compare: local=%s remote=%s...\n",
- print_local (local), print_remote (remote)));
-@@ -1722,7 +1774,7 @@
- g_return_val_if_fail (local!=NULL,-1);
- g_return_val_if_fail (remote!=NULL,-1);
-
-- local_pilot = local_record_to_pilot_record (local, ctxt);
-+ local_pilot = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- if (remote->length != local_pilot.length
- || memcmp (local_pilot.record, remote->record, remote->length))
-@@ -1883,9 +1935,11 @@
- GnomePilotRecord *remote,
- ECalConduitContext *ctxt)
- {
-+ static unsigned char record[0xffff];
-+
- LOG (g_message ( "prepare: encoding local %s\n", print_local (local) ));
-
-- *remote = local_record_to_pilot_record (local, ctxt);
-+ *remote = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- return 0;
- }
-diff -Nur evolution-2.8.0/calendar/conduits/memo/memo-conduit.c evolution-2.8.0.new/calendar/conduits/memo/memo-conduit.c
---- calendar/conduits/memo/memo-conduit.c.orig 2005-10-19 13:39:35.000000000 +0200
-+++ calendar/conduits/memo/memo-conduit.c 2006-09-20 18:49:46.000000000 +0200
-@@ -331,6 +331,7 @@
- {
- static char buff[ 64 ];
- struct Memo memo;
-+ pi_buffer_t piBuf;
-
- if (remote == NULL) {
- sprintf (buff, "[NULL]");
-@@ -338,7 +339,10 @@
- }
-
- memset (&memo, 0, sizeof (struct Memo));
-- unpack_Memo (&memo, remote->record, remote->length);
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_Memo(&memo, &piBuf, memo_v1);
-
- g_snprintf (buff, 64, "['%s']",
- memo.text ?
-@@ -446,12 +450,24 @@
- }
- }
-
-+/**
-+ * convert a local EMemoLocalRecord to a GnomePilotRecord for the PDA
-+ *
-+ * @param local local Evolution memo record
-+ * @param ctxt conduit context
-+ * @param record record to use for GnomePilotRecord. Allow the calling
-+ * function to determine if the record should be allocated
-+ * dynamically or statically.
-+ * @param maxRecordLen size of *record (max amount of data that can be put
-+ * into record)
-+ */
- static GnomePilotRecord
- local_record_to_pilot_record (EMemoLocalRecord *local,
-- EMemoConduitContext *ctxt)
-+ EMemoConduitContext *ctxt,
-+ unsigned char *record,
-+ int maxRecordLen)
- {
- GnomePilotRecord p;
-- static char record[0xffff];
-
- g_assert (local->comp != NULL);
- g_assert (local->memo != NULL );
-@@ -464,9 +480,25 @@
- p.archived = local->local.archived;
- p.secret = local->local.secret;
-
-+ memset(record, 0, maxRecordLen);
-+
- /* Generate pilot record structure */
-- p.record = record;
-- p.length = pack_Memo (local->memo, p.record, 0xffff);
-+ {
-+
-+ pi_buffer_t piBuf;
-+ memset (&piBuf, 0, sizeof (piBuf));
-+
-+ pack_Memo(local->memo, &piBuf, memo_v1);
-+ if(piBuf.used > 0) {
-+ memcpy(record, piBuf.data, MIN(piBuf.used, maxRecordLen) );
-+ }
-+
-+ p.length = piBuf.used;
-+ p.record = record;
-+ if(piBuf.data) {
-+ free(piBuf.data);
-+ }
-+ }
-
- return p;
- }
-@@ -483,53 +515,39 @@
- {
- int i, j;
- int retval = 0; /* 0 is the Unfiled category */
-- LOG(fprintf(stderr, "add_category_if_possible: called\n"));
-+ LOG(g_message("add_category_if_possible\n"));
-
- for(i=0; i<16; i++){
- /* if strlen is 0, then the category is empty
- the PalmOS doesn't let 0-length strings for
- categories */
-- LOG(fprintf(stderr, "add_category_if_possible: calling strlen, i==%d\n", i));
- if(strlen(category->name[i]) == 0){
- int cat_to_add_len;
-- LOG(fprintf(stderr, "add_category_if_possible: strlen == 0\n"));
-
- cat_to_add_len = strlen(cat_to_add);
-- LOG(fprintf(stderr, "add_category_if_possible: cat_to_add_len: %d\n",
-- cat_to_add_len));
- retval = i;
-
- /* only 15 characters for category, 16th is
- * '\0' can't do direct mem transfer due to
- * declaration type
- */
-- LOG(fprintf(stderr, "add_category_if_possible: copying first 15 of category\n"));
- for(j=0; j<cat_to_add_len; j++){
- category->name[i][j] = cat_to_add[j];
- }
-- LOG(fprintf(stderr,
-- "add_category_if_possible: setting from %d to i==15 to \\0\n",
-- cat_to_add_len));
-
- for(j=cat_to_add_len; j<16; j++)
- category->name[i][j] = '\0';
-
-- LOG(fprintf(stderr, "add_category_if_possible: setting ID[%d] to %d\n",
-- category->ID[i], lastDesktopUniqueID));
- category->ID[i] = lastDesktopUniqueID;
- lastDesktopUniqueID++;
--
-- LOG(fprintf(stderr, "add_category_if_possible: setting renamed[%d] to TRUE\n", i));
- category->renamed[i] = TRUE;
-
-- LOG(g_message("*** adding category '%s', ID %d ***",
-- category->name[i], category->ID[i]));
- break;
- }
- }
-
- if(retval == 0){
-- LOG(g_message("*** not adding category - category list already full ***"));
-+ LOG(g_warning( _("*** not adding category - category list already full ***") ));
- }
-
- return retval;
-@@ -554,31 +572,35 @@
- local->comp = comp;
- g_object_ref (comp);
-
-- LOG(fprintf(stderr, "local_record_from_comp: calling e_cal_component_get_uid\n"));
- e_cal_component_get_uid (local->comp, &uid);
-- LOG(fprintf(stderr, "local_record_from_comp: got UID - %s, calling e_pilot_map_lookup_pid\n", uid));
- local->local.ID = e_pilot_map_lookup_pid (ctxt->map, uid, TRUE);
-- LOG(fprintf(stderr, "local_record_from_comp: local->local.ID == %lu\n", local->local.ID));
-
- compute_status (ctxt, local, uid);
--
-- LOG(fprintf(stderr, "local_record_from_comp: local->local.attr: %d\n", local->local.attr));
-
- local->memo = g_new0 (struct Memo,1);
-
- /* Don't overwrite the category */
- if (local->local.ID != 0) {
-- char record[0xffff];
- int cat = 0;
-+ int dlpReadRetval = 0;
-+ pi_buffer_t *piBuf;
-+ piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN( _("local_record_from_comp: no more memory to allocate") );
-+ return;
-+ }
-
-- LOG(fprintf(stderr, "local_record_from_comp: calling dlp_ReadRecordById\n"));
-- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
-- ctxt->dbi->db_handle,
-- local->local.ID, &record,
-- NULL, NULL, NULL, &cat) > 0) {
-+ dlpReadRetval = dlp_ReadRecordById(ctxt->dbi->pilot_socket,
-+ ctxt->dbi->db_handle,
-+ local->local.ID, piBuf,
-+ NULL, NULL, &cat);
-+
-+
-+ if (dlpReadRetval > 0) {
- local->local.category = cat;
- }
-- LOG(fprintf(stderr, "local_record_from_comp: done calling dlp_ReadRecordById\n"));
-+
-+ pi_buffer_free(piBuf);
- }
-
- /*
-@@ -589,34 +611,23 @@
- int cat = -1;
- int i;
-
-- LOG(fprintf(stderr, "local_record_from_comp: trying to set category"));
-- LOG(fprintf(stderr, "local_record_from_comp: calling e_cal_component_get_categories_list\n"));
--
- e_cal_component_get_categories_list(comp, &categ_list_head);
-- LOG(fprintf(stderr, "local_record_from_comp: got list, setting categ_list_cur to head\n"));
-
- categ_list_cur = categ_list_head;
- while (categ_list_cur && cat == -1)
- {
-- LOG(fprintf(stderr, "local_record_from_comp: iterating, data == %s",
-- (char *)categ_list_cur->data));
- for(i=0; i<16; i++){
-- LOG(fprintf(stderr, "local_record_from_comp: i == %d\n", i));
- if(strcmp((char *)categ_list_cur->data,
- ctxt->ai.category.name[i]) == 0){
- cat = i;
-- LOG(fprintf(stderr, "local_record_from_comp: found category, name: %s\n",
-- ctxt->ai.category.name[i]));
- break;
- }
- }
-
-- LOG(fprintf(stderr, "local_record_from_comp: calling g_slist_next\n"));
- categ_list_cur = g_slist_next(categ_list_cur);
- }
-
- if(cat != -1){
-- LOG(fprintf(stderr, "local_record_from_comp: setting category\n"));
- local->local.category = cat;
- }
- else if(categ_list_head != NULL){
-@@ -708,7 +719,13 @@
- g_return_val_if_fail (remote != NULL, NULL);
-
- memset (&memo, 0, sizeof (struct Memo));
-- unpack_Memo (&memo, remote->record, remote->length);
-+ {
-+ pi_buffer_t piBuf;
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_Memo(&memo, &piBuf, memo_v1);
-+ }
-
- utc_zone = icaltimezone_get_utc_timezone ();
- now = icaltime_from_timet_with_zone (time (NULL), FALSE,
-@@ -836,7 +853,7 @@
- GnomePilotConduitSyncAbs *abs_conduit;
- GList *l;
- int len;
-- unsigned char *buf;
-+ pi_buffer_t *piBuf;
- char *filename, *change_id;
- icalcomponent *icalcomp;
- gint num_records, add_records = 0, mod_records = 0, del_records = 0;
-@@ -929,9 +946,14 @@
- g_message("num_records: %d\nadd_records: %d\nmod_records: %d\ndel_records: %d\n",
- num_records, add_records, mod_records, del_records);
-
-- buf = (unsigned char*)g_malloc (0xffff);
-- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-- (unsigned char *)buf, 0xffff);
-+ piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN (_("pre_sync(): Error allocating pi_buffer_t memory"));
-+ gnome_pilot_conduit_error (conduit,
-+ _("pre_sync(): Error allocating pi_buffer_t memory"));
-+ return -1;
-+ }
-+ len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0, -1, piBuf);
-
- if (len < 0) {
- WARN (_("Could not read pilot's Memo application block"));
-@@ -940,8 +962,9 @@
- _("Could not read pilot's Memo application block"));
- return -1;
- }
-- unpack_MemoAppInfo (&(ctxt->ai), buf, len);
-- g_free (buf);
-+
-+ unpack_MemoAppInfo (&(ctxt->ai), piBuf->data, len);
-+ pi_buffer_free(piBuf);
-
- lastDesktopUniqueID = 128;
-
-@@ -963,6 +986,9 @@
- unsigned char *buf;
- int dlpRetVal, len;
-
-+ /* Write AppBlock to PDA - updates categories */
-+ /* NOTE: not changed for pilot-link 0.12 because the two
-+ * functions below didn't change */
- buf = (unsigned char*)g_malloc (0xffff);
-
- len = pack_MemoAppInfo (&(ctxt->ai), buf, 0xffff);
-@@ -1156,6 +1182,7 @@
- /* used by the quick compare */
- GnomePilotRecord local_pilot;
- int retval = 0;
-+ static unsigned char record[0xffff];
-
- LOG (g_message ("compare: local=%s remote=%s...\n",
- print_local (local), print_remote (remote)));
-@@ -1163,7 +1190,7 @@
- g_return_val_if_fail (local!=NULL,-1);
- g_return_val_if_fail (remote!=NULL,-1);
-
-- local_pilot = local_record_to_pilot_record (local, ctxt);
-+ local_pilot = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- if (remote->length != local_pilot.length
- || memcmp (local_pilot.record, remote->record, remote->length))
-@@ -1319,9 +1346,10 @@
- GnomePilotRecord *remote,
- EMemoConduitContext *ctxt)
- {
-+ static unsigned char record[0xffff];
- LOG (g_message ( "prepare: encoding local %s\n", print_local (local) ));
-
-- *remote = local_record_to_pilot_record (local, ctxt);
-+ *remote = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- return 0;
- }
-diff -Nur evolution-2.8.0/calendar/conduits/todo/todo-conduit.c evolution-2.8.0.new/calendar/conduits/todo/todo-conduit.c
---- calendar/conduits/todo/todo-conduit.c.orig 2006-05-13 09:56:49.000000000 +0200
-+++ calendar/conduits/todo/todo-conduit.c 2006-09-20 18:50:31.000000000 +0200
-@@ -409,7 +409,13 @@
- }
-
- memset (&todo, 0, sizeof (struct ToDo));
-- unpack_ToDo (&todo, remote->record, remote->length);
-+ {
-+ pi_buffer_t piBuf;
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_ToDo(&todo, &piBuf, todo_v1);
-+ }
-
- g_snprintf (buff, 4096, "[%d %ld %d %d '%s' '%s' %d]",
- todo.indefinite,
-@@ -589,12 +595,24 @@
- }
- }
-
-+/**
-+ * convert a local EMemoLocalRecord to a GnomePilotRecord for the PDA
-+ *
-+ * @param local local Evolution memo record
-+ * @param ctxt conduit context
-+ * @param record record to use for GnomePilotRecord. Allow the calling
-+ * function to determine if the record should be allocated
-+ * dynamically or statically.
-+ * @param maxRecordLen size of *record (max amount of data that can be put
-+ * into record)
-+ */
- static GnomePilotRecord
- local_record_to_pilot_record (EToDoLocalRecord *local,
-- EToDoConduitContext *ctxt)
-+ EToDoConduitContext *ctxt,
-+ unsigned char *record,
-+ int maxRecordLen)
- {
- GnomePilotRecord p;
-- static char record[0xffff];
-
- g_assert (local->comp != NULL);
- g_assert (local->todo != NULL );
-@@ -607,9 +625,24 @@
- p.archived = local->local.archived;
- p.secret = local->local.secret;
-
-+ memset(record, 0, maxRecordLen);
-+
- /* Generate pilot record structure */
-- p.record = record;
-- p.length = pack_ToDo (local->todo, p.record, 0xffff);
-+ {
-+ pi_buffer_t piBuf;
-+ memset (&piBuf, 0, sizeof (piBuf));
-+
-+ pack_ToDo(local->todo, &piBuf, todo_v1);
-+ if(piBuf.used > 0) {
-+ memcpy(record, piBuf.data, MIN(piBuf.used, maxRecordLen) );
-+ }
-+
-+ p.length = piBuf.used;
-+ p.record = record;
-+ if(piBuf.data) {
-+ free(piBuf.data);
-+ }
-+ }
-
- return p;
- }
-@@ -696,15 +729,23 @@
-
- /* Don't overwrite the category */
- if (local->local.ID != 0) {
-- char record[0xffff];
- int cat = 0;
--
-- if (dlp_ReadRecordById (ctxt->dbi->pilot_socket,
-- ctxt->dbi->db_handle,
-- local->local.ID, &record,
-- NULL, NULL, NULL, &cat) > 0) {
-+ int dlpReadRetval = 0;
-+ pi_buffer_t *piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN( _("local_record_from_comp: no more memory to allocate") );
-+ return;
-+ }
-+ dlpReadRetval = dlp_ReadRecordById(ctxt->dbi->pilot_socket,
-+ ctxt->dbi->db_handle,
-+ local->local.ID, piBuf,
-+ NULL, NULL, &cat);
-+
-+ if (dlpReadRetval > 0) {
- local->local.category = cat;
- }
-+
-+ pi_buffer_free(piBuf);
- }
-
- /*
-@@ -864,7 +905,13 @@
- g_return_val_if_fail (remote != NULL, NULL);
-
- memset (&todo, 0, sizeof (struct ToDo));
-- unpack_ToDo (&todo, remote->record, remote->length);
-+ {
-+ pi_buffer_t piBuf;
-+ piBuf.data = remote->record;
-+ piBuf.allocated = remote->length;
-+ piBuf.used = remote->length;
-+ unpack_ToDo(&todo, &piBuf, todo_v1);
-+ }
-
- utc_zone = icaltimezone_get_utc_timezone ();
- now = icaltime_from_timet_with_zone (time (NULL), FALSE,
-@@ -1014,7 +1061,7 @@
- GnomePilotConduitSyncAbs *abs_conduit;
- GList *l;
- int len;
-- unsigned char *buf;
-+ pi_buffer_t *piBuf;
- char *filename, *change_id;
- icalcomponent *icalcomp;
- gint num_records, add_records = 0, mod_records = 0, del_records = 0;
-@@ -1104,9 +1151,14 @@
- g_message("num_records: %d\nadd_records: %d\nmod_records: %d\ndel_records: %d\n",
- num_records, add_records, mod_records, del_records);
-
-- buf = (unsigned char*)g_malloc (0xffff);
-- len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0,
-- (unsigned char *)buf, 0xffff);
-+ piBuf = pi_buffer_new(0xffff);
-+ if(piBuf == NULL) {
-+ WARN (_("pre_sync(): Error allocating pi_buffer_t memory"));
-+ gnome_pilot_conduit_error (conduit,
-+ _("pre_sync(): Error allocating pi_buffer_t memory"));
-+ return -1;
-+ }
-+ len = dlp_ReadAppBlock (dbi->pilot_socket, dbi->db_handle, 0, -1, piBuf);
-
- if (len < 0) {
- WARN (_("Could not read pilot's ToDo application block"));
-@@ -1115,8 +1167,9 @@
- _("Could not read pilot's ToDo application block"));
- return -1;
- }
-- unpack_ToDoAppInfo (&(ctxt->ai), buf, len);
-- g_free (buf);
-+
-+ unpack_ToDoAppInfo (&(ctxt->ai), piBuf->data, len);
-+ pi_buffer_free(piBuf);
-
- lastDesktopUniqueID = 128;
-
-@@ -1138,6 +1191,9 @@
- unsigned char *buf;
- int dlpRetVal, len;
-
-+ /* Write AppBlock to PDA - updates categories */
-+ /* NOTE: not changed for pilot-link 0.12 because the two
-+ * functions below didn't change */
- buf = (unsigned char*)g_malloc (0xffff);
-
- len = pack_ToDoAppInfo (&(ctxt->ai), buf, 0xffff);
-@@ -1320,6 +1376,7 @@
- /* used by the quick compare */
- GnomePilotRecord local_pilot;
- int retval = 0;
-+ static unsigned char record[0xffff];
-
- LOG (g_message ("compare: local=%s remote=%s...\n",
- print_local (local), print_remote (remote)));
-@@ -1327,7 +1384,7 @@
- g_return_val_if_fail (local!=NULL,-1);
- g_return_val_if_fail (remote!=NULL,-1);
-
-- local_pilot = local_record_to_pilot_record (local, ctxt);
-+ local_pilot = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- if (remote->length != local_pilot.length
- || memcmp (local_pilot.record, remote->record, remote->length))
-@@ -1484,9 +1541,11 @@
- GnomePilotRecord *remote,
- EToDoConduitContext *ctxt)
- {
-+ static unsigned char record[0xffff];
-+
- LOG (g_message ( "prepare: encoding local %s\n", print_local (local) ));
-
-- *remote = local_record_to_pilot_record (local, ctxt);
-+ *remote = local_record_to_pilot_record (local, ctxt, record, sizeof(record));
-
- return 0;
- }
OpenPOWER on IntegriCloud