Преглед на файлове

fix segfault when argc<1

Pi3rrot преди 8 години
родител
ревизия
56dba81b70
променени са 1 файла, в които са добавени 10 реда и са изтрити 5 реда
  1. 10 5
      poolset.c

+ 10 - 5
poolset.c

@@ -15,9 +15,7 @@ void show_menu(){
 	printf("  --read\tRead credits and date\n");
 	printf("  --write\tWrite <credit> <buy_date> <expire_date>\n");
 	printf("\t\tEx: ./poolset --write 10 25/12/16 25/06/16\n\n");
-	exit(0);
 }
-
 void rw_tag(int coins, char *buy_date, char *expire_date) {
 	
 	nfc_context *context;		//init libnfc
@@ -153,11 +151,18 @@ int main(int argc, const char **argv) {
 	printf("RFID Poolset Read/Write !\n");
 	printf("=========================\n");
 
+	if (argc <= 1) {
+	    show_menu();
+	    exit(1);
+	}
+
 	if (strcmp(argv[1], "--read") == 0)
 		rw_tag(NULL, NULL, NULL);
 	
-	else if (strcmp(argv[1], "--write") == 0)
+	if (strcmp(argv[1], "--write") == 0)
 		rw_tag(atoi(argv[2]), argv[3], argv[4]);
-	else
-		show_menu();
+
+	exit(0);
 }
+
+