--- a/libpurple/example/nullclient.c Tue Feb 26 21:59:46 2013 -0500 +++ b/libpurple/example/nullclient.c Sun Mar 03 18:35:43 2013 -0500 @@ -242,7 +242,7 @@ GList *iter; int i, num; GList *names = NULL; - const char *prpl; + const char *prpl = NULL; char name[128]; char *password; GMainLoop *loop = g_main_loop_new(NULL, FALSE); @@ -278,8 +278,12 @@ fprintf(stderr, "Failed to gets protocol selection."); abort(); } - sscanf(name, "%d", &num); - prpl = g_list_nth_data(names, num); + if (sscanf(name, "%d", &num) == 1) + prpl = g_list_nth_data(names, num); + if (!prpl) { + fprintf(stderr, "Failed to gets protocol."); + abort(); + } printf("Username: "); res = fgets(name, sizeof(name), stdin);