projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Using alloca() for a constant sized buffer is very silly.
[tinc]
/
src
/
tincd.c
diff --git
a/src/tincd.c
b/src/tincd.c
index
7b74cd6
..
53f91e8
100644
(file)
--- a/
src/tincd.c
+++ b/
src/tincd.c
@@
-338,7
+338,7
@@
static bool keygen(int bits) {
RSA *rsa_key;
FILE *f;
char *name = get_name();
RSA *rsa_key;
FILE *f;
char *name = get_name();
- char *
file
name;
+ char *
pubname, *priv
name;
fprintf(stderr, "Generating %d bits keys:\n", bits);
rsa_key = RSA_generate_key(bits, 0x10001, indicator, NULL);
fprintf(stderr, "Generating %d bits keys:\n", bits);
rsa_key = RSA_generate_key(bits, 0x10001, indicator, NULL);
@@
-349,8
+349,9
@@
static bool keygen(int bits) {
} else
fprintf(stderr, "Done.\n");
} else
fprintf(stderr, "Done.\n");
- xasprintf(&filename, "%s/rsa_key.priv", confbase);
- f = ask_and_open(filename, "private RSA key");
+ xasprintf(&privname, "%s/rsa_key.priv", confbase);
+ f = ask_and_open(privname, "private RSA key");
+ free(privname);
if(!f)
return false;
if(!f)
return false;
@@
-363,14
+364,14
@@
static bool keygen(int bits) {
fputc('\n', f);
PEM_write_RSAPrivateKey(f, rsa_key, NULL, NULL, 0, NULL, NULL);
fclose(f);
fputc('\n', f);
PEM_write_RSAPrivateKey(f, rsa_key, NULL, NULL, 0, NULL, NULL);
fclose(f);
- free(filename);
if(name)
if(name)
- xasprintf(&
file
name, "%s/hosts/%s", confbase, name);
+ xasprintf(&
pub
name, "%s/hosts/%s", confbase, name);
else
else
- xasprintf(&
file
name, "%s/rsa_key.pub", confbase);
+ xasprintf(&
pub
name, "%s/rsa_key.pub", confbase);
- f = ask_and_open(filename, "public RSA key");
+ f = ask_and_open(pubname, "public RSA key");
+ free(pubname);
if(!f)
return false;
if(!f)
return false;
@@
-378,7
+379,6
@@
static bool keygen(int bits) {
fputc('\n', f);
PEM_write_RSAPublicKey(f, rsa_key);
fclose(f);
fputc('\n', f);
PEM_write_RSAPublicKey(f, rsa_key);
fclose(f);
- free(filename);
free(name);
return true;
free(name);
return true;
@@
-467,9
+467,11
@@
static bool drop_privs() {
"initgroups", strerror(errno));
return false;
}
"initgroups", strerror(errno));
return false;
}
- // Not supported in android NDK
- //endgrent();
- //endpwent();
+#ifndef __ANDROID__
+// Not supported in android NDK
+ endgrent();
+ endpwent();
+#endif
}
if (do_chroot) {
tzset(); /* for proper timestamps in logs */
}
if (do_chroot) {
tzset(); /* for proper timestamps in logs */