X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/2c29cba82ac4bdb2b16ec4d16c7fc293cd1850dd..ad5bc8cc8c0a6573d6b2c7bc58bf94f7ab66ad4c:/client/proxmark3.c diff --git a/client/proxmark3.c b/client/proxmark3.c index 83b58247..0bd8ff9d 100644 --- a/client/proxmark3.c +++ b/client/proxmark3.c @@ -54,17 +54,27 @@ void SendCommand(UsbCommand *c) { } struct receiver_arg { - int run; + int run; }; struct main_loop_arg { - int usb_present; - char *script_cmds_file; + int usb_present; + char *script_cmds_file; }; byte_t rx[0x1000000]; byte_t* prx = rx; +// static void showBanner(void){ + // printf("██████╗ ███╗ ███╗ ████╗ ...Iceman fork\n"); + // printf("██╔══██╗████╗ ████║ ══█║\n"); + // printf("██████╔╝██╔████╔██║ ████╔╝\n"); + // printf("██╔═══╝ ██║╚██╔╝██║ ══█║ iceman@icesql.net\n"); + // printf("██║ ██║ ╚═╝ ██║ ████╔╝ https://github.com/iceman1001/proxmark3\n"); + // printf("╚═╝ ╚═╝ ╚═╝ ╚═══╝v1.6.4\n"); +// } + + static void *uart_receiver(void *targ) { struct receiver_arg *arg = (struct receiver_arg*)targ; size_t rxlen; @@ -105,6 +115,7 @@ static void *main_loop(void *targ) { char *cmd = NULL; pthread_t reader_thread; + if (arg->usb_present == 1) { rarg.run = 1; pthread_create(&reader_thread, NULL, &uart_receiver, &rarg); @@ -127,8 +138,8 @@ static void *main_loop(void *targ) { while(1) { // If there is a script file - if (script_file) - { + if (script_file) { + if (!fgets(script_cmd_buf, sizeof(script_cmd_buf), script_file)) { fclose(script_file); script_file = NULL; @@ -142,9 +153,10 @@ static void *main_loop(void *targ) { if (nl) *nl = '\0'; - - if ((cmd = (char*) malloc(strlen(script_cmd_buf) + 1)) != NULL) { - memset(cmd, 0, strlen(script_cmd_buf)); + + int newlen = strlen(script_cmd_buf); + if ((cmd = (char*) malloc( newlen + 1)) != NULL) { + memset(cmd, 0x00, newlen); strcpy(cmd, script_cmd_buf); printf("%s\n", cmd); } @@ -153,6 +165,8 @@ static void *main_loop(void *targ) { cmd = readline(PROXPROMPT); } + // this one should pick up all non-null cmd... + // why is there a if (cmd) { while(cmd[strlen(cmd) - 1] == ' ') @@ -167,23 +181,27 @@ static void *main_loop(void *targ) { break; } free(cmd); + cmd = 0; } else { printf("\n"); break; } } - - write_history(".history"); - - if (arg->usb_present == 1) { - rarg.run = 0; - pthread_join(reader_thread, NULL); - } if (script_file) { fclose(script_file); script_file = NULL; } + + write_history(".history"); + + free(cmd); + cmd = 0; + + if (arg->usb_present == 1) { + rarg.run = 0; + pthread_join(reader_thread, NULL); + } ExitGraphics(); pthread_exit(NULL); @@ -277,6 +295,6 @@ int main(int argc, char* argv[]) { // clean up mutex pthread_mutex_destroy(&print_lock); - + exit(0); }