aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/conduits/todo/todo-conduit.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2001-01-16 00:01:35 +0800
committerJP Rosevear <jpr@src.gnome.org>2001-01-16 00:01:35 +0800
commitff3935d0a6e4b639a070f3f980187d4774ca5da8 (patch)
tree1fe8895f7752604646b2af35f3642b1842e2407e /calendar/conduits/todo/todo-conduit.c
parent12d6acd7bcec525403136599c16808d9cbe896e4 (diff)
downloadgsoc2013-evolution-ff3935d0a6e4b639a070f3f980187d4774ca5da8.tar.gz
gsoc2013-evolution-ff3935d0a6e4b639a070f3f980187d4774ca5da8.tar.zst
gsoc2013-evolution-ff3935d0a6e4b639a070f3f980187d4774ca5da8.zip
'2001-01-15 JP Rosevear <jpr@ximian.com>
* conduit/address-conduit.c (print_local): prevent segfaults and buffer overflows (print_remote): ditto 2001-01-15 JP Rosevear <jpr@ximian.com> * conduits/todo/todo-conduit.c (print_local): prevent segfaults and buffer overflows. (print_remote): ditto * conduits/calendar/calendar-conduit.c: as above svn path=/trunk/; revision=7504
Diffstat (limited to 'calendar/conduits/todo/todo-conduit.c')
-rw-r--r--calendar/conduits/todo/todo-conduit.c38
1 files changed, 24 insertions, 14 deletions
diff --git a/calendar/conduits/todo/todo-conduit.c b/calendar/conduits/todo/todo-conduit.c
index d232b88173..abc3bd498d 100644
--- a/calendar/conduits/todo/todo-conduit.c
+++ b/calendar/conduits/todo/todo-conduit.c
@@ -77,13 +77,18 @@ print_local (EToDoLocalRecord *local)
}
if (local->todo && local->todo->description) {
- sprintf (buff, "[%d %ld %d %d '%s' '%s']",
- local->todo->indefinite,
- mktime (& local->todo->due),
- local->todo->priority,
- local->todo->complete,
- local->todo->description,
- local->todo->note);
+ g_snprintf (buff, 4096, "[%d %ld %d %d '%s' '%s']",
+ local->todo->indefinite ?
+ local->todo->indefinite : "",
+ mktime (& local->todo->due),
+ local->todo->priority ?
+ local->todo->priority : "",
+ local->todo->complete ?
+ local->todo->complete : "",
+ local->todo->description ?
+ local->todo->description : "",
+ local->todo->note ?
+ local->todo->note : "");
return buff;
}
@@ -103,13 +108,18 @@ static char *print_remote (GnomePilotRecord *remote)
memset (&todo, 0, sizeof (struct ToDo));
unpack_ToDo (&todo, remote->record, remote->length);
- sprintf (buff, "[%d %ld %d %d '%s' '%s']",
- todo.indefinite,
- mktime (& todo.due),
- todo.priority,
- todo.complete,
- todo.description,
- todo.note);
+ g_snprintf (buff, "[%d %ld %d %d '%s' '%s']",
+ todo.indefinite ?
+ todo.indefinite : "",
+ mktime (&todo.due),
+ todo.priority ?
+ todo.priority : "",
+ todo.complete ?
+ todo.complete : "",
+ todo.description ?
+ todo.description : "",
+ todo.note ?
+ todo.note : "");
return buff;
}