ctrl: Error if new passwords don't match.

Produce an error when requesting a new password if both
attempts do not match.

Closes #2011. Thanks to Willem Eradus.
pull/2027/head
Roger A. Light 5 years ago
parent 26fbd0ec74
commit 9c4b9a0311

@ -10,6 +10,8 @@ Broker:
Apps: Apps:
- Allow command line arguments to override config file options in - Allow command line arguments to override config file options in
mosquitto_ctrl. Closes #2010. mosquitto_ctrl. Closes #2010.
- mosquitto_ctrl: produce an error when requesting a new password if both
attempts do not match. Closes #2011.
2.0.5 - 2021-01-11 2.0.5 - 2021-01-11
================== ==================

@ -720,9 +720,8 @@ int dynsec_init(int argc, char *argv[])
snprintf(verify_prompt, sizeof(verify_prompt), "Reenter password for %s: ", admin_user); snprintf(verify_prompt, sizeof(verify_prompt), "Reenter password for %s: ", admin_user);
rc = get_password(prompt, verify_prompt, false, password, sizeof(password)); rc = get_password(prompt, verify_prompt, false, password, sizeof(password));
if(rc){ if(rc){
fprintf(stderr, "Error getting password.\n");
mosquitto_lib_cleanup(); mosquitto_lib_cleanup();
return 1; return -1;
} }
admin_password = password; admin_password = password;
} }

@ -65,6 +65,9 @@ int dynsec_client__create(int argc, char *argv[], cJSON *j_command)
rc = get_password(prompt, verify_prompt, true, password_buf, sizeof(password_buf)); rc = get_password(prompt, verify_prompt, true, password_buf, sizeof(password_buf));
if(rc == 0){ if(rc == 0){
password = password_buf; password = password_buf;
}else if(rc == 2){
fprintf(stderr, "Error: Passwords do not match.\n");
return -1;
}else{ }else{
password = NULL; password = NULL;
printf("\n"); printf("\n");
@ -163,7 +166,7 @@ int dynsec_client__set_password(int argc, char *argv[], cJSON *j_command)
snprintf(verify_prompt, sizeof(verify_prompt), "Reenter password for %s: ", username); snprintf(verify_prompt, sizeof(verify_prompt), "Reenter password for %s: ", username);
rc = get_password(prompt, verify_prompt, false, password_buf, sizeof(password_buf)); rc = get_password(prompt, verify_prompt, false, password_buf, sizeof(password_buf));
if(rc){ if(rc){
return MOSQ_ERR_INVAL; return -1;
} }
password = password_buf; password = password_buf;
}else{ }else{

@ -135,7 +135,7 @@ int get_password(const char *prompt, const char *verify_prompt, bool quiet, char
if(!quiet){ if(!quiet){
fprintf(stderr, "Error: Passwords do not match.\n"); fprintf(stderr, "Error: Passwords do not match.\n");
} }
return 1; return 2;
} }
} }

Loading…
Cancel
Save