diff -Nru gammu-1.13.0.orig/common/misc/misc.h gammu-1.13.0/common/misc/misc.h --- gammu-1.13.0.orig/common/misc/misc.h 2007-08-03 12:19:04.000000000 +0300 +++ gammu-1.13.0/common/misc/misc.h 2007-09-05 20:52:24.000000000 +0300 @@ -22,7 +22,7 @@ /* ------------------------------------------------------------------------- */ -#define MAX_LINES 50 +#define MAX_LINES 512 typedef struct { int numbers[MAX_LINES*2]; diff -Nru gammu-1.13.0.orig/common/service/backup/backtext.c gammu-1.13.0/common/service/backup/backtext.c --- gammu-1.13.0.orig/common/service/backup/backtext.c 2007-08-03 16:20:04.000000000 +0300 +++ gammu-1.13.0/common/service/backup/backtext.c 2007-09-05 21:57:21.000000000 +0300 @@ -903,11 +903,15 @@ static void SaveRingtoneEntry(FILE *file, GSM_Ringtone *ringtone, bool UseUnicode) { - unsigned char buffer[45000]; + unsigned char *buffer; + buffer = (unsigned char*) malloc(32 > 2 * ringtone->NokiaBinary.Length ? 32 : 2 * ringtone->NokiaBinary.Length ); + if (buffer == NULL) + return; sprintf(buffer,"Location = %i%c%c",ringtone->Location,13,10); SaveBackupText(file, "", buffer, UseUnicode); SaveBackupText(file, "Name", ringtone->Name, UseUnicode); + switch (ringtone->Format) { case RING_NOKIABINARY: EncodeHexBin(buffer,ringtone->NokiaBinary.Frame,ringtone->NokiaBinary.Length); @@ -926,6 +930,8 @@ } sprintf(buffer,"%c%c",13,10); SaveBackupText(file, "", buffer, UseUnicode); + + free (buffer); } static void SaveOperatorEntry(FILE *file, GSM_Bitmap *bitmap, bool UseUnicode) diff -Nru gammu-1.13.0.orig/gammu/backup.c gammu-1.13.0/gammu/backup.c --- gammu-1.13.0.orig/gammu/backup.c 2007-08-01 17:36:52.000000000 +0300 +++ gammu-1.13.0/gammu/backup.c 2007-09-05 20:54:11.000000000 +0300 @@ -165,7 +165,7 @@ GSM_FMStation FMStation; GSM_GPRSAccessPoint GPRSPoint; bool DoBackup; - char buffer[100]; + char buffer[256]; if (argc == 4 && strcasecmp(argv[3],"-yes") == 0) always_answer_yes = true; diff -Nru gammu-1.13.0.orig/gammu/common.c gammu-1.13.0/gammu/common.c --- gammu-1.13.0.orig/gammu/common.c 2007-08-01 17:36:52.000000000 +0300 +++ gammu-1.13.0/gammu/common.c 2007-09-05 20:54:43.000000000 +0300 @@ -225,7 +225,7 @@ { GSM_File PhoneDB; char model[100]; - char version[100]; + char version[256]; unsigned char buff[200], ver[200]; size_t pos = 0, oldpos = 0, i; GSM_Error error; diff -Nru gammu-1.13.0.orig/gammu/misc.c gammu-1.13.0/gammu/misc.c --- gammu-1.13.0.orig/gammu/misc.c 2007-08-06 12:48:08.000000000 +0300 +++ gammu-1.13.0/gammu/misc.c 2007-09-05 20:55:00.000000000 +0300 @@ -97,7 +97,7 @@ void Identify(int argc, char *argv[]) { - char buffer[100]; + char buffer[256]; char date[100]; double num; GSM_Error error;