--- a/libpurple/example/nullclient.c Sat Mar 02 13:59:59 2013 -0500 +++ b/libpurple/example/nullclient.c Sat Mar 02 17:20:56 2013 -0500 @@ -253,7 +253,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); @@ -289,8 +289,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);