Validate Name before using it in a filename when generating a keypair.
This commit is contained in:
parent
0966cca8ab
commit
0d0dfd0852
1 changed files with 12 additions and 7 deletions
19
src/tincd.c
19
src/tincd.c
|
@ -292,6 +292,18 @@ static bool keygen(int bits)
|
||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
char *filename;
|
char *filename;
|
||||||
|
|
||||||
|
get_config_string(lookup_config(config_tree, "Name"), &name);
|
||||||
|
|
||||||
|
if(name) {
|
||||||
|
if(!check_id(name)) {
|
||||||
|
fprintf(stderr, _("Invalid name for myself!\n"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
asprintf(&filename, "%s/hosts/%s", confbase, name);
|
||||||
|
free(name);
|
||||||
|
} else
|
||||||
|
asprintf(&filename, "%s/rsa_key.pub", confbase);
|
||||||
|
|
||||||
fprintf(stderr, _("Generating %d bits keys:\n"), bits);
|
fprintf(stderr, _("Generating %d bits keys:\n"), bits);
|
||||||
rsa_key = RSA_generate_key(bits, 0x10001, indicator, NULL);
|
rsa_key = RSA_generate_key(bits, 0x10001, indicator, NULL);
|
||||||
|
|
||||||
|
@ -319,13 +331,6 @@ static bool keygen(int bits)
|
||||||
fclose(f);
|
fclose(f);
|
||||||
free(filename);
|
free(filename);
|
||||||
|
|
||||||
get_config_string(lookup_config(config_tree, "Name"), &name);
|
|
||||||
|
|
||||||
if(name)
|
|
||||||
asprintf(&filename, "%s/hosts/%s", confbase, name);
|
|
||||||
else
|
|
||||||
asprintf(&filename, "%s/rsa_key.pub", confbase);
|
|
||||||
|
|
||||||
f = ask_and_open(filename, _("public RSA key"), "a");
|
f = ask_and_open(filename, _("public RSA key"), "a");
|
||||||
|
|
||||||
if(!f)
|
if(!f)
|
||||||
|
|
Loading…
Reference in a new issue