diff options
author | David Sommerseth <dazo@users.sourceforge.net> | 2009-09-07 21:10:22 +0200 |
---|---|---|
committer | David Sommerseth <dazo@users.sourceforge.net> | 2009-09-07 21:10:22 +0200 |
commit | 66b29488a7ed5909564ed03b3e89cd0d008df09e (patch) | |
tree | 2ef1558a3c54b37b59a775f4734cb467cac183cb /eurephiadm | |
parent | 428d4fd45100c5c9b799f2fb127775b8b2382ecc (diff) | |
download | eurephia-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.c | 3 | ||||
-rw-r--r-- | eurephiadm/client_context.c | 2 | ||||
-rw-r--r-- | eurephiadm/client_session.c | 14 | ||||
-rw-r--r-- | eurephiadm/commands/users.c | 13 | ||||
-rw-r--r-- | eurephiadm/eurephiadm.c | 4 | ||||
-rw-r--r-- | eurephiadm/parse_certificate_files.c | 7 |
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 |