X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/1f247f6ac63295c54f5e8a95b2c39c6077d2d5ec..8ce95353de94f1e7d083775eb0f6b199c4122069:/client/cmdhflegic.c

diff --git a/client/cmdhflegic.c b/client/cmdhflegic.c
index 0ddc7466..62c43f04 100644
--- a/client/cmdhflegic.c
+++ b/client/cmdhflegic.c
@@ -636,14 +636,13 @@ int CmdLegicRfWrite(const char *Cmd) {
 		PrintAndLog("############# DANGER ################");
 		PrintAndLog("# changing the DCF is irreversible  #");
 		PrintAndLog("#####################################");
-		PrintAndLog("do you really want to continue? y(es) n(o)");		
-		char answer;
-		sscanf(" %c", &answer);
-		bool exit = !(answer == 'n' || answer == 'N');
-		if (exit)
+		char *answer = NULL;
+		answer = readline("do you really want to continue? y(es) n(o) : ");
+		bool overwrite = (answer[0] == 'y' || answer[0] == 'Y');
+		if (!overwrite){
+			PrintAndLog("command cancelled");
 			return 0;
-		printf("ICE DCF:  %c answer, %d\n", answer, exit);
-		return 0;
+		}
 	}
 	
 	legic_chk_iv(&IV);
@@ -925,7 +924,8 @@ int CmdLegicDump(const char *Cmd){
 	else
 		sprintf(fnameptr + fileNlen,".bin");
 
-	if ((f = fopen(filename,"wb")) == NULL) { 
+	f = fopen(filename,"wb");
+	if (!f) { 
 		PrintAndLog("Could not create file name %s", filename);
 		if (data)
 			free(data);
@@ -1001,7 +1001,8 @@ int CmdLegicRestore(const char *Cmd){
 	fnameptr += fileNlen;
 	sprintf(fnameptr, ".bin");
 
-	if ((f = fopen(filename,"rb")) == NULL) {
+	f = fopen(filename,"rb");
+	if (!f) {
 		PrintAndLog("File %s not found or locked", filename);
 		return 3;
 	}	
@@ -1020,14 +1021,14 @@ int CmdLegicRestore(const char *Cmd){
 
 	// load file
 	size_t bytes_read = fread(data, 1, numofbytes, f);
+	fclose(f);
+	
 	if ( bytes_read == 0){
 		PrintAndLog("File reading error");
 		free(data);
-		fclose(f);
 		return 2;
 	}
-	fclose(f);
-
+	
 	PrintAndLog("Restoring to card");
 
 	// transfer to device
@@ -1097,7 +1098,8 @@ int CmdLegicELoad(const char *Cmd) {
 	sprintf(fnameptr, ".bin");
 	
 	// open file
-	if ((f = fopen(filename,"rb")) == NULL) { 
+	f = fopen(filename,"rb");
+	if (!f) { 
 		PrintAndLog("File %s not found or locked", filename);
 		free(data);
 		return 1;
@@ -1109,9 +1111,11 @@ int CmdLegicELoad(const char *Cmd) {
 		PrintAndLog("File reading error");
 		free(data);
 		fclose(f);
+		f = NULL;		
 		return 2;
 	}
 	fclose(f);
+	f = NULL;
 	
 	// transfer to device
 	legic_seteml(data, 0, numofbytes);
@@ -1171,7 +1175,8 @@ int CmdLegicESave(const char *Cmd) {
 		sprintf(fnameptr + fileNlen,".bin");
 	
 	// open file
-	if ((f = fopen(filename,"wb")) == NULL) { 
+	f = fopen(filename,"wb");
+	if (!f) { 
 		PrintAndLog("Could not create file name %s", filename);
 		free(data);
 		return 1;