diff -uNr gnokii/smsd/ChangeLog gnokii.new/smsd/ChangeLog --- gnokii/smsd/ChangeLog 2011-05-30 22:27:21.298402552 +0200 +++ gnokii.new/smsd/ChangeLog 2011-06-06 02:02:43.880678667 +0200 @@ -1,3 +1,8 @@ +* Mon 06 Jun 2011 Jan Derfinak +- Change WriteSMS() to make a local copy of gn_sms structure because gnokii + library modifies this structure during sending. + + * Sat 28 May 2011 Jan Derfinak - After patch from 09 Apr 2011, the query interval for looking to outbox was too small and smsd overloads db server. Added 5 seconds sleep if outbox diff -uNr gnokii/smsd/smsd.c gnokii.new/smsd/smsd.c --- gnokii/smsd/smsd.c 2011-05-30 22:27:21.315069130 +0200 +++ gnokii.new/smsd/smsd.c 2011-06-06 02:20:06.578363221 +0200 @@ -403,7 +403,11 @@ PhoneEvent *e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent)); D_SMSMessage *m = (D_SMSMessage *) g_malloc (sizeof (D_SMSMessage)); - m->sms = sms; + /* We need a local copy because gnokii library modifies + gn_sms structure during sending */ + m->sms = calloc (1, sizeof (gn_sms)); + *(m->sms) = *sms; + e->event = Event_SendSMSMessage; e->data = m; InsertEvent (e); @@ -414,6 +418,7 @@ gn_log_xdebug ("Address: %s\nText: %s\n", sms->remote.number, sms->user_data[0].u.text); error = m->status; + g_free (m->sms); g_free (m); if (error)