From e045c34d42c6315df9c45a0b982ae016dce2806f Mon Sep 17 00:00:00 2001
From: Per Hedbor <ph@opera.com>
Date: Mon, 28 Feb 2000 10:17:49 +0100
Subject: [PATCH] Fixed memoryleak (image_program was leaked on module exit)

Rev: src/modules/SANE/sane.c:1.2
---
 src/modules/SANE/sane.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/modules/SANE/sane.c b/src/modules/SANE/sane.c
index 96184f7222..490a6402ce 100644
--- a/src/modules/SANE/sane.c
+++ b/src/modules/SANE/sane.c
@@ -351,7 +351,7 @@ static void assert_image_program()
     push_text( "Image.Image" );
     APPLY_MASTER( "resolv", 1 );
     image_program = program_from_svalue( sp - 1  );
-    pop_stack();
+    sp--;/* Do not free image program.. */
   }
 }
 
@@ -363,6 +363,8 @@ static void f_scanner_simple_scan( INT32 args )
   rgb_group *r;
 
 
+  assert_image_program();
+
   pop_n_elems( args );
   if( sane_start( THIS->h ) )   error("Start failed\n");
   if( sane_get_parameters( THIS->h, &p ) )  error("Get parameters failed\n");
@@ -525,6 +527,8 @@ void pike_module_exit()
 {
   if( sane_is_inited )
     sane_exit();
+  if( image_program )
+    free_program( image_program );
 }
 
 #else
-- 
GitLab