summaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'plugin')
-rw-r--r--plugin/eurephiadb_session.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/plugin/eurephiadb_session.c b/plugin/eurephiadb_session.c
index c0a6878..5cadb9c 100644
--- a/plugin/eurephiadb_session.c
+++ b/plugin/eurephiadb_session.c
@@ -79,7 +79,7 @@ eurephiaSESSION *eDBopen_session_seed(eurephiaCTX *ctx, const char *digest,
char *seeddata = NULL, *seed = NULL, *ptr = NULL;
SHA512Context sha;
uint8_t sha_res[SHA512_HASH_SIZE];
- int totlen = 0, i = 0;
+ size_t totlen = 0, i = 0;
DEBUG(ctx, 12, "Function call: eDBopen_session_seed(ctx, '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
digest, cname, username, vpnipaddr, vpnipmask, remipaddr, remport);
@@ -93,17 +93,17 @@ eurephiaSESSION *eDBopen_session_seed(eurephiaCTX *ctx, const char *digest,
new_session->type = ((vpnipaddr == NULL) && (vpnipmask == NULL) ? stAUTHENTICATION : stSESSION);
// Build up a string containing all elements for the session seed
- totlen = strlen_nullsafe(digest) + strlen_nullsafe(cname) + strlen_nullsafe(username)
- + strlen_nullsafe(vpnipaddr) + strlen_nullsafe(vpnipmask) + strlen_nullsafe(remipaddr)
- + strlen_nullsafe(remport) + 20; // +5 == len(pid) + 15 extra buffer if some strings are (null)
+ totlen = 60 + 64 + 34 + 34 + 34 + 34 + 6 + 5 + 15;
+ // max length of: digest + cname + username + vpnipaddr + vpnipmask + remipaddr + remport + pid
+ // + extra buffer
- seeddata = (char *) malloc_nullsafe(ctx, (totlen * 2) + 4);
+ seeddata = (char *) malloc_nullsafe(ctx, totlen);
if( seeddata == NULL ) {
free_nullsafe(ctx, new_session);
return NULL;
}
- snprintf((char *)seeddata, totlen,
- "%s%s%s%s%s%s%s%i", digest, cname, username, vpnipaddr, vpnipmask, remipaddr, remport,getpid());
+ snprintf((char *)seeddata, totlen, "%s%s%s%s%s%s%s%i",
+ digest, cname, username, vpnipaddr, vpnipmask, remipaddr, remport, getpid());
// Generate a SHA512 version of session seed
memset(&sha, 0, sizeof(SHA512Context));