From e7cdbab18bdd41515985d94a35e17d5252c536ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Tue, 11 Mar 1997 04:18:45 +0100 Subject: [PATCH] Fixed memory leak. Removed bogus optimization flags. Rev: src/modules/_Crypto/cbc.c:1.5 Rev: src/modules/_Crypto/idea.c:1.9 Rev: src/modules/_Crypto/invert.c:1.5 Rev: src/modules/_Crypto/md2.c:1.2 Rev: src/modules/_Crypto/rc4.c:1.3 --- src/modules/_Crypto/cbc.c | 23 ++++++++++------------- src/modules/_Crypto/idea.c | 15 +++++++-------- src/modules/_Crypto/invert.c | 15 +++++++-------- src/modules/_Crypto/md2.c | 9 ++++----- src/modules/_Crypto/rc4.c | 15 ++++++--------- 5 files changed, 34 insertions(+), 43 deletions(-) diff --git a/src/modules/_Crypto/cbc.c b/src/modules/_Crypto/cbc.c index b2d160f5cc..23d9172bc6 100644 --- a/src/modules/_Crypto/cbc.c +++ b/src/modules/_Crypto/cbc.c @@ -1,5 +1,5 @@ /* - * $Id: cbc.c,v 1.4 1997/02/12 06:09:54 nisse Exp $ + * $Id: cbc.c,v 1.5 1997/03/11 03:12:59 nisse Exp $ * * CBC (Cipher Block Chaining Mode) crypto module for Pike. * @@ -182,7 +182,6 @@ static void f_set_encrypt_key(INT32 args) THIS->mode = 0; safe_apply(THIS->object, "set_encrypt_key", args); pop_stack(); - this_object()->refs++; push_object(this_object()); } @@ -197,7 +196,6 @@ static void f_set_decrypt_key(INT32 args) THIS->mode = 1; safe_apply(THIS->object, "set_decrypt_key", args); pop_stack(); - this_object()->refs++; push_object(this_object()); } @@ -215,7 +213,6 @@ static void f_set_iv(INT32 args) error("cbc->set_iv: argument incompatible with cipher blocksize\n"); MEMCPY(THIS->iv, sp[-args].u.string->str, THIS->block_size); pop_n_elems(args); - this_object()->refs++; push_object(this_object()); } @@ -319,17 +316,17 @@ void MOD_INIT(cbc)(void) start_new_program(); add_storage(sizeof(struct pike_crypto_cbc)); - add_function("create", f_create, "function(program|object:void)", OPT_EXTERNAL_DEPEND); + add_function("create", f_create, "function(program|object:void)", 0); - add_function("query_block_size", f_query_block_size, "function(void:int)", OPT_TRY_OPTIMIZE); - add_function("query_key_length", f_query_key_length, "function(void:int)", OPT_TRY_OPTIMIZE); + add_function("query_block_size", f_query_block_size, "function(void:int)", 0); + add_function("query_key_length", f_query_key_length, "function(void:int)", 0); - add_function("set_encrypt_key", f_set_encrypt_key, "function(string:object)", OPT_SIDE_EFFECT); - add_function("set_decrypt_key", f_set_decrypt_key, "function(string:object)", OPT_SIDE_EFFECT); - add_function("set_iv", f_set_iv, "function(string:object)", OPT_SIDE_EFFECT); - add_function("crypt_block", f_crypt_block, "function(string:string)", OPT_EXTERNAL_DEPEND); - add_function("encrypt_block", f_encrypt_block, "function(string:string)", OPT_EXTERNAL_DEPEND); - add_function("decrypt_block", f_decrypt_block, "function(string:string)", OPT_EXTERNAL_DEPEND); + add_function("set_encrypt_key", f_set_encrypt_key, "function(string:object)", 0); + add_function("set_decrypt_key", f_set_decrypt_key, "function(string:object)", 0); + add_function("set_iv", f_set_iv, "function(string:object)", 0); + add_function("crypt_block", f_crypt_block, "function(string:string)", 0); + add_function("encrypt_block", f_encrypt_block, "function(string:string)", 0); + add_function("decrypt_block", f_decrypt_block, "function(string:string)", 0); set_init_callback(init_pike_crypto_cbc); set_exit_callback(exit_pike_crypto_cbc); diff --git a/src/modules/_Crypto/idea.c b/src/modules/_Crypto/idea.c index eed4aa31dc..e603f49cb9 100644 --- a/src/modules/_Crypto/idea.c +++ b/src/modules/_Crypto/idea.c @@ -1,5 +1,5 @@ /* - * $Id: idea.c,v 1.8 1997/02/12 06:10:15 nisse Exp $ + * $Id: idea.c,v 1.9 1997/03/11 03:15:00 nisse Exp $ * * IDEA crypto module for Pike * @@ -96,7 +96,6 @@ static void f_set_encrypt_key(INT32 args) idea_expand(THIS, (unsigned char *)sp[-1].u.string->str); pop_n_elems(args); - this_object()->refs++; push_object(this_object()); } @@ -170,12 +169,12 @@ void MOD_INIT(idea)(void) start_new_program(); add_storage(sizeof(INT16[IDEA_KEYLEN])); - add_function("name", f_name, "function(void:string)", OPT_TRY_OPTIMIZE); - add_function("query_block_size", f_query_block_size, "function(void:int)", OPT_TRY_OPTIMIZE); - add_function("query_key_length", f_query_key_length, "function(void:int)", OPT_TRY_OPTIMIZE); - add_function("set_encrypt_key", f_set_encrypt_key, "function(string:object)", OPT_SIDE_EFFECT); - add_function("set_decrypt_key", f_set_decrypt_key, "function(string:object)", OPT_SIDE_EFFECT); - add_function("crypt_block", f_crypt_block, "function(string:string)", OPT_EXTERNAL_DEPEND); + add_function("name", f_name, "function(void:string)", 0); + add_function("query_block_size", f_query_block_size, "function(void:int)", 0); + add_function("query_key_length", f_query_key_length, "function(void:int)", 0); + add_function("set_encrypt_key", f_set_encrypt_key, "function(string:object)", 0); + add_function("set_decrypt_key", f_set_decrypt_key, "function(string:object)", 0); + add_function("crypt_block", f_crypt_block, "function(string:string)", 0); set_init_callback(init_pike_crypto_idea); set_exit_callback(exit_pike_crypto_idea); diff --git a/src/modules/_Crypto/invert.c b/src/modules/_Crypto/invert.c index 0998603d90..7df44fc15d 100644 --- a/src/modules/_Crypto/invert.c +++ b/src/modules/_Crypto/invert.c @@ -1,5 +1,5 @@ /* - * $Id: invert.c,v 1.4 1997/02/12 06:10:18 nisse Exp $ + * $Id: invert.c,v 1.5 1997/03/11 03:16:23 nisse Exp $ * * INVERT crypto module for Pike * @@ -86,7 +86,6 @@ static void f_set_key(INT32 args) error("Bad argument 1 to invert->set_key()\n"); } pop_n_elems(args); - this_object()->refs++; push_object(this_object()); } @@ -148,12 +147,12 @@ void MOD_INIT(invert)(void) /* /precompiled/crypto/invert */ start_new_program(); - add_function("name", f_name, "function(void:string)", OPT_TRY_OPTIMIZE); - add_function("query_block_size", f_query_block_size, "function(void:int)", OPT_TRY_OPTIMIZE); - add_function("query_key_length", f_query_key_length, "function(void:int)", OPT_TRY_OPTIMIZE); - add_function("set_encrypt_key", f_set_key, "function(string:void)", OPT_SIDE_EFFECT); - add_function("set_decrypt_key", f_set_key, "function(string:void)", OPT_SIDE_EFFECT); - add_function("crypt_block", f_crypt_block, "function(string:string)", OPT_SIDE_EFFECT); + add_function("name", f_name, "function(void:string)", 0); + add_function("query_block_size", f_query_block_size, "function(void:int)", 0); + add_function("query_key_length", f_query_key_length, "function(void:int)", 0); + add_function("set_encrypt_key", f_set_key, "function(string:void)", 0); + add_function("set_decrypt_key", f_set_key, "function(string:void)", 0); + add_function("crypt_block", f_crypt_block, "function(string:string)", 0); set_init_callback(init_pike_crypto_invert); set_exit_callback(exit_pike_crypto_invert); diff --git a/src/modules/_Crypto/md2.c b/src/modules/_Crypto/md2.c index bc017e8e06..1414edd6cf 100644 --- a/src/modules/_Crypto/md2.c +++ b/src/modules/_Crypto/md2.c @@ -1,5 +1,5 @@ /* - * $Id: md2.c,v 1.1.1.1 1996/11/05 15:10:09 grubba Exp $ + * $Id: md2.c,v 1.2 1997/03/11 03:16:36 nisse Exp $ * * A pike module for getting access to some common cryptos. * @@ -106,7 +106,6 @@ static void f_cast_to_string(INT32 args) } push_string(PIKE_MD2->string); - PIKE_MD2->string->refs++; } /* mixed cast(string) */ @@ -158,9 +157,9 @@ void init_md2_programs(void) start_new_program(); add_storage(sizeof(struct pike_md2)); - add_function("push", f_push, "function(string:void)", OPT_SIDE_EFFECT); - add_function("cast", f_cast, "function(string:mixed)", OPT_EXTERNAL_DEPEND); - add_function("cast_to_string", f_cast_to_string, "function(void:string)", OPT_EXTERNAL_DEPEND); + add_function("push", f_push, "function(string:void)", 0); + add_function("cast", f_cast, "function(string:mixed)", 0); + add_function("cast_to_string", f_cast_to_string, "function(void:string)", 0); set_init_callback(init_pike_md2); set_exit_callback(exit_pike_md2); diff --git a/src/modules/_Crypto/rc4.c b/src/modules/_Crypto/rc4.c index 5f6257ef80..12d8762950 100644 --- a/src/modules/_Crypto/rc4.c +++ b/src/modules/_Crypto/rc4.c @@ -64,7 +64,6 @@ static void f_set_key(INT32 args) rc4_set_key(THIS, (unsigned INT8 *) sp[-1].u.string->str, sp[-1].u.string->len); pop_n_elems(args); - this_object()->refs++; push_object(this_object()); } @@ -75,7 +74,7 @@ static void f_crypt(INT32 args) struct pike_string *s; if (args != 1) { - error("Wrong number of arguemnts to rc4->crypt()\n"); + error("Wrong number of arguments to rc4->crypt()\n"); } if (sp[-1].type != T_STRING) { error("Bad argument 1 to rc4->crypt()\n"); @@ -103,11 +102,11 @@ void MOD_INIT(rc4)(void) start_new_program(); add_storage(sizeof(struct rc4_ctx)); - add_function("name", f_name, "function(void:string)", OPT_TRY_OPTIMIZE); - add_function("query_key_length", f_query_key_length, "function(void:int)", OPT_TRY_OPTIMIZE); - add_function("set_encrypt_key", f_set_key, "function(string:object)", OPT_SIDE_EFFECT); - add_function("set_decrypt_key", f_set_key, "function(string:object)", OPT_SIDE_EFFECT); - add_function("crypt", f_crypt, "function(string:string)", OPT_EXTERNAL_DEPEND); + add_function("name", f_name, "function(void:string)", 0); + add_function("query_key_length", f_query_key_length, "function(void:int)", 0); + add_function("set_encrypt_key", f_set_key, "function(string:object)", 0); + add_function("set_decrypt_key", f_set_key, "function(string:object)", 0); + add_function("crypt", f_crypt, "function(string:string)", 0); set_init_callback(init_pike_rc4); set_exit_callback(exit_pike_rc4); @@ -118,5 +117,3 @@ void MOD_INIT(rc4)(void) void MOD_EXIT(rc4)(void) { } - - -- GitLab