From: Thadeu Lima de Souza Cascardo Date: Wed, 17 Jul 2013 21:52:35 +0000 (-0300) Subject: Make main program more robust. X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fsgp.git;a=commitdiff_plain;h=2ff434dd80317815b06a754f758ae5df9a108388 Make main program more robust. --- diff --git a/src/main.c b/src/main.c index 4bb2b50..0db7962 100644 --- a/src/main.c +++ b/src/main.c @@ -23,11 +23,32 @@ int main(int argc, char **argv) struct sgp_group *group; struct sgp_msg *msg; struct sgp_friend *friend; + int r; /* TODO: access a database here? */ - group = sgp_group_new("Myself"); friend = sgp_friend_new("Thadeu Cascardo"); + if (!friend) + return 1; + group = sgp_group_new("Myself"); + if (!group) + goto out_group; msg = sgp_msg_new("New message for you"); - sgp_group_add_friend(group, friend); - sgp_share(group, msg); - return 0; + if (!msg) + goto out_msg; + r = sgp_group_add_friend(group, friend); + if (!r) + goto out_add; + r = sgp_share(group, msg); + sgp_msg_destroy(msg); + sgp_group_destroy(group); + /* we must only destroy the friend after all group references + * are gone */ + sgp_friend_destroy(friend); + return r; +out_add: + sgp_msg_destroy(msg); +out_msg: + sgp_group_destroy(group); +out_group: + sgp_friend_destroy(friend); + return 1; }