On Tue, 28 Oct 2008, Giovanni Biscuolo wrote:
> Afrer upgrading from 2.6.22 I get the following error when trying to print 
> some documents (sales orders, invoices, 
> etc.):
> 
> Error!
> 
> panic: attempt to copy freed scalar 83e6ee0 to 8233bf0 at SL/Form.pm line 984.

Hello,

it should be fixed with the version 2.8.24-1 that I will upload to sid
(unstable) in a few minutes.

Please tell me if the problem is fixed, if yes, I might try to get it
fixed in stable as well.

I attach the patch used if you want to try separately (without installing
the package).

Cheers,
-- 
Raphaël Hertzog

Contribuez à Debian et gagnez un cahier de l'admin Debian Lenny :
http://www.ouaza.com/wp/2009/03/02/contribuer-a-debian-gagner-un-livre/
Description: Fix for perl 5.10
 This change should fix the error "panic: attempt to copy freed scalar
 83e6ee0 to 8233bf0 at SL/Form.pm line 984." that many people have been
 experiencing while trying to print some documents. It's specific to perl
 5.10.
Author: Dieter Simader
Forwarded-Upstream: yes (patch coming from upstream)

--- a/SL/Form.pm        2009-03-26 23:37:32.000000000 +0100
+++ b/SL/Form.pm        2009-04-21 08:44:19.000000000 +0200
@@ -653,10 +653,10 @@
        }
 
        # display contents of $self->{number}[] array
-       for my $i (0 .. $#{ $self->{$var} }) {
+       for my $j (0 .. $#{ $self->{$var} }) {
 
          if ($var =~ /^(part|service)$/) {
-           next if $self->{$var}[$i] eq 'NULL';
+           next if $self->{$var}[$j] eq 'NULL';
          }
 
          # Try to detect whether a manual page break is necessary
@@ -666,8 +666,8 @@
            if ($chars_per_line && defined $self->{$var}) {
              my $line;
              my $lines = 0;
-             my $item = $self->{description}[$i];
-             $item .= "\n".$self->{itemnotes}[$i] if $self->{itemnotes}[$i];
+             my $item = $self->{description}[$j];
+             $item .= "\n".$self->{itemnotes}[$j] if $self->{itemnotes}[$j];
              
              foreach $line (split /\r?\n/, $item) {
                $lines++;
@@ -706,11 +706,11 @@
              }
              $current_line += $lines;
            }
-           $sum += $self->parse_amount($myconfig, $self->{linetotal}[$i]);
+           $sum += $self->parse_amount($myconfig, $self->{linetotal}[$j]);
          }
 
          # don't parse par, we need it for each line
-         print OUT $self->format_line($par, $i);
+         print OUT $self->format_line($par, $j);
          
        }
        next;

Reply via email to