From af975d63f67e6cc2d17f1804acb66328905f8701 Mon Sep 17 00:00:00 2001 From: amelia squires Date: Mon, 21 Apr 2025 20:43:51 -0500 Subject: better version support, fixes, and memory saftey --- src/hash/md5.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/hash/md5.c') diff --git a/src/hash/md5.c b/src/hash/md5.c index 45844f2..f98e590 100644 --- a/src/hash/md5.c +++ b/src/hash/md5.c @@ -27,10 +27,15 @@ struct md5_hash md5_init(){ return a; } +int l_md5_free(lua_State* L){ + struct md5_hash* h = lua_touserdata(L, -1); + free(h->buffer); + return 0; +} struct md5_hash md5_init_l(lua_State* L){ struct md5_hash a = {.a0 = 0x67452301, .b0 = 0xefcdab89, .c0 = 0x98badcfe, .d0 = 0x10325476, .total = 0, .bufflen = 0}; - a.buffer = lua_newuserdata(L, sizeof * a.buffer * bs); + a.buffer = calloc(sizeof * a.buffer, bs); memset(a.buffer, 0, bs); return a; } @@ -142,7 +147,7 @@ lua_common_hash_clone_oargs(md5, md5, l_md5_init(L), { memcpy(b->buffer, a->buffer, bs * sizeof * b->buffer); }); -lua_common_hash_init_ni(md5, md5, md5_init_l(L)); +lua_common_hash_init_ni(md5, md5, md5_init_l(L), l_md5_free); lua_common_hash_update(md5, md5); //common_hash_init_update(md5); -- cgit v1.2.3