summaryrefslogtreecommitdiffstats
path: root/eurephiadm
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2009-09-07 21:10:22 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2009-09-07 21:10:22 +0200
commit66b29488a7ed5909564ed03b3e89cd0d008df09e (patch)
tree2ef1558a3c54b37b59a775f4734cb467cac183cb /eurephiadm
parent428d4fd45100c5c9b799f2fb127775b8b2382ecc (diff)
downloadeurephia-66b29488a7ed5909564ed03b3e89cd0d008df09e.tar.gz
eurephia-66b29488a7ed5909564ed03b3e89cd0d008df09e.tar.xz
eurephia-66b29488a7ed5909564ed03b3e89cd0d008df09e.zip
Moved all malloc() operations over to a calloc wrapper, malloc_nullsafe()
This also improves debugging as well, if debug logging is enabled and log level is >= 40.
Diffstat (limited to 'eurephiadm')
-rw-r--r--eurephiadm/client_config.c3
-rw-r--r--eurephiadm/client_context.c2
-rw-r--r--eurephiadm/client_session.c14
-rw-r--r--eurephiadm/commands/users.c13
-rw-r--r--eurephiadm/eurephiadm.c4
-rw-r--r--eurephiadm/parse_certificate_files.c7
6 files changed, 15 insertions, 28 deletions
diff --git a/eurephiadm/client_config.c b/eurephiadm/client_config.c
index 011de7c..8b24cf2 100644
--- a/eurephiadm/client_config.c
+++ b/eurephiadm/client_config.c
@@ -196,8 +196,7 @@ eurephiaVALUES *ReadConfig(const char *env, const char *cfgname) {
return NULL;
}
- buf = (char *) malloc(fi.st_size+2);
- memset(buf, 0, fi.st_size+2);
+ buf = (char *) malloc_nullsafe(NULL, fi.st_size+2);
cfg = eCreate_value_space(NULL, 20);
while( fgets(buf, fi.st_size, fp) != NULL ) {
diff --git a/eurephiadm/client_context.c b/eurephiadm/client_context.c
index 040e9d6..6875087 100644
--- a/eurephiadm/client_context.c
+++ b/eurephiadm/client_context.c
@@ -60,7 +60,7 @@ eurephiaCTX *eurephiaCTX_init(FILE *log, const int loglevel, eurephiaVALUES *cfg
return NULL;
}
- ctx = (eurephiaCTX *) malloc(sizeof(eurephiaCTX)+2);
+ ctx = (eurephiaCTX *) malloc_nullsafe(NULL, sizeof(eurephiaCTX)+2);
assert(ctx != NULL);
memset(ctx, 0, sizeof(eurephiaCTX)+2);
ctx->context_type = ECTX_ADMIN_CONSOLE;
diff --git a/eurephiadm/client_session.c b/eurephiadm/client_session.c
index 90a99a6..0f3ec80 100644
--- a/eurephiadm/client_session.c
+++ b/eurephiadm/client_session.c
@@ -85,9 +85,8 @@ char *read_session_file(eurephiaCTX *ctx) {
return NULL;
}
- sesskey = (char *) malloc(256);
+ sesskey = (char *) malloc_nullsafe(ctx, 256);
assert( sesskey != NULL );
- memset(sesskey, 0, 256);
if( (fgets(sesskey, 254, sfp) == NULL) || (strlen_nullsafe(sesskey) < 64) ) {
eurephia_log(ctx, LOG_PANIC, 0,
"Could not read session file (%s). Session value too short", fname);
@@ -162,22 +161,19 @@ eurephiaSESSION *create_session(eurephiaCTX *ctx, const char *sesskey) {
unsigned char sha_res[SHA512_HASH_SIZE+2];
SHA512Context sha;
- new_sess = (eurephiaSESSION *) malloc(sizeof(eurephiaSESSION) + 2);
+ new_sess = (eurephiaSESSION *) malloc_nullsafe(ctx, sizeof(eurephiaSESSION) + 2);
assert(new_sess != NULL);
- memset(new_sess, 0, sizeof(eurephiaSESSION) + 2);
-
if( sesskey == NULL ) {
// Get data for a unique session key
- randdata = (char *) malloc(514);
+ randdata = (char *) malloc_nullsafe(ctx, 514);
assert(randdata != NULL);
do {
char *ptr = NULL;
int i = 0;
- memset(randdata, 0, 514);
if( !eurephia_randstring(ctx, randdata, 512) ) {
eurephia_log(ctx, LOG_FATAL, 0,
"Could not generate enough random data for session");
@@ -190,9 +186,8 @@ eurephiaSESSION *create_session(eurephiaCTX *ctx, const char *sesskey) {
memset(&sha_res, 0, SHA512_HASH_SIZE+2);
free_nullsafe(new_sess->sessionkey);
- new_sess->sessionkey = (char *) malloc((SHA512_HASH_SIZE*2) + 3);
+ new_sess->sessionkey = (char *) malloc_nullsafe(ctx, (SHA512_HASH_SIZE*2) + 3);
assert(new_sess->sessionkey != NULL);
- memset(new_sess->sessionkey, 0, (SHA512_HASH_SIZE*2) + 3);
SHA512Init(&sha);
SHA512Update(&sha, randdata, 512);
@@ -208,6 +203,7 @@ eurephiaSESSION *create_session(eurephiaCTX *ctx, const char *sesskey) {
loop++;
uniqchk = eDBcheck_sessionkey_uniqueness(ctx, new_sess->sessionkey);
+ memset(randdata, 0, 514);
} while( (uniqchk == 0) && (loop < 11) );
free_nullsafe(randdata);
diff --git a/eurephiadm/commands/users.c b/eurephiadm/commands/users.c
index 9f4b666..66b3bce 100644
--- a/eurephiadm/commands/users.c
+++ b/eurephiadm/commands/users.c
@@ -560,13 +560,10 @@ int account_activation(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *
if( newpwd == NULL ) {
char *chkpwd = NULL;
- newpwd = (char *) malloc(66);
+ newpwd = (char *) malloc_nullsafe(ctx, 66);
assert(newpwd != NULL);
- memset(newpwd, 0, 66);
-
- chkpwd = (char *) malloc(66);
+ chkpwd = (char *) malloc_nullsafe(ctx, 66);
assert(chkpwd != NULL);
- memset(chkpwd, 0, 66);
get_console_input(newpwd, 64, "Password for user:", 1);
if( strlen_nullsafe(newpwd) < 4 ) {
@@ -754,13 +751,11 @@ int add_user(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int a
if( passwd == NULL ) {
char *chkpwd = NULL;
- passwd = (char *) malloc(66);
+ passwd = (char *) malloc_nullsafe(ctx, 66);
assert(passwd != NULL);
- memset(passwd, 0, 66);
- chkpwd = (char *) malloc(66);
+ chkpwd = (char *) malloc_nullsafe(ctx, 66);
assert(chkpwd != NULL);
- memset(chkpwd, 0, 66);
get_console_input(passwd, 64, "Password for user:", 1);
if( strlen_nullsafe(passwd) < 4 ) {
diff --git a/eurephiadm/eurephiadm.c b/eurephiadm/eurephiadm.c
index 2061f98..10cf70e 100644
--- a/eurephiadm/eurephiadm.c
+++ b/eurephiadm/eurephiadm.c
@@ -307,8 +307,8 @@ char *args2string(int argc, char **argv) {
len += strlen_nullsafe(argv[i]) + 1;
}
- res = (char *) malloc(len+2);
- memset(res, 0, len+2);
+ res = (char *) malloc_nullsafe(NULL, len+2);
+ assert( res != NULL );
for( i = 0; i < argc; i++ ) {
strcat(res, argv[i]);
diff --git a/eurephiadm/parse_certificate_files.c b/eurephiadm/parse_certificate_files.c
index 4925ddf..5ff0598 100644
--- a/eurephiadm/parse_certificate_files.c
+++ b/eurephiadm/parse_certificate_files.c
@@ -182,14 +182,11 @@ certinfo *_Cert_ParseFile(const char *module, const char *certfile, int certfile
return NULL;
}
- ret = (certinfo *) malloc(sizeof(certinfo)+2);
+ ret = (certinfo *) malloc_nullsafe(NULL, sizeof(certinfo)+2);
assert( ret != NULL );
- memset(ret, 0, sizeof(certinfo)+2);
- ret->digest = (char *) malloc(66);
+ ret->digest = (char *) malloc_nullsafe(NULL, 66);
assert(ret != NULL);
- memset(ret->digest, 0, 66);
-
// extract SHA1 digest from certificate