Obtain canonical name for password file.
This commit is contained in:
parent
d09d7c47c5
commit
2a05602d84
@ -368,7 +368,7 @@ void handle_sigint(int signal)
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *password_file_tmp = NULL;
|
char *password_file_tmp = NULL;
|
||||||
char password_file[1024];
|
char *password_file = NULL;
|
||||||
char *username = NULL;
|
char *username = NULL;
|
||||||
char *password_cmd = NULL;
|
char *password_cmd = NULL;
|
||||||
bool batch_mode = false;
|
bool batch_mode = false;
|
||||||
@ -434,7 +434,19 @@ int main(int argc, char *argv[])
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(password_file, 1024, "%s", password_file_tmp);
|
#ifdef WIN32
|
||||||
|
password_file = _fullpath(NULL, password_file_tmp, 0);
|
||||||
|
if(!password_file){
|
||||||
|
fprintf(stderr, "Error getting full path for password file.\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
password_file = realpath(password_file_tmp, NULL);
|
||||||
|
if(!password_file){
|
||||||
|
fprintf(stderr, "Error reading password file: %s\n", strerror(errno));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if(create_new){
|
if(create_new){
|
||||||
rc = get_password(password, 1024);
|
rc = get_password(password, 1024);
|
||||||
@ -442,8 +454,10 @@ int main(int argc, char *argv[])
|
|||||||
fptr = fopen(password_file, "wt");
|
fptr = fopen(password_file, "wt");
|
||||||
if(!fptr){
|
if(!fptr){
|
||||||
fprintf(stderr, "Error: Unable to open file %s for writing. %s.\n", password_file, strerror(errno));
|
fprintf(stderr, "Error: Unable to open file %s for writing. %s.\n", password_file, strerror(errno));
|
||||||
|
free(password_file);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
free(password_file);
|
||||||
rc = output_new_password(fptr, username, password);
|
rc = output_new_password(fptr, username, password);
|
||||||
fclose(fptr);
|
fclose(fptr);
|
||||||
return rc;
|
return rc;
|
||||||
@ -451,15 +465,19 @@ int main(int argc, char *argv[])
|
|||||||
fptr = fopen(password_file, "r+t");
|
fptr = fopen(password_file, "r+t");
|
||||||
if(!fptr){
|
if(!fptr){
|
||||||
fprintf(stderr, "Error: Unable to open password file %s. %s.\n", password_file, strerror(errno));
|
fprintf(stderr, "Error: Unable to open password file %s. %s.\n", password_file, strerror(errno));
|
||||||
|
free(password_file);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
backup_file = malloc(strlen(password_file)+5);
|
backup_file = malloc(strlen(password_file)+5);
|
||||||
if(!backup_file){
|
if(!backup_file){
|
||||||
fprintf(stderr, "Error: Out of memory.\n");
|
fprintf(stderr, "Error: Out of memory.\n");
|
||||||
|
free(password_file);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
snprintf(backup_file, strlen(password_file)+5, "%s.tmp", password_file);
|
snprintf(backup_file, strlen(password_file)+5, "%s.tmp", password_file);
|
||||||
|
free(password_file);
|
||||||
|
password_file = NULL;
|
||||||
|
|
||||||
if(create_backup(backup_file, fptr)){
|
if(create_backup(backup_file, fptr)){
|
||||||
fclose(fptr);
|
fclose(fptr);
|
||||||
|
Loading…
Reference in New Issue
Block a user