Thread SpreadSheet::WriteExcel Bufferoverflow? (9 answers)
Opened by Tr0Nix at 2008-04-09 18:35

Tr0Nix
 2008-04-09 18:35
#108167 #108167
User since
2006-11-21
44 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen

Ich habe ein sehr spezielles Problem mit dem im Subjekt genannten Modul. Es äussert sich darin, dass wenn ich die Methode "write_number" verwende, Perl abstürzt und Windows eine Speicherschutzverletzung meldet. Die Speicherschutzverletzung bezieht sich dabei auf eine Memoryaddresse, die meinem Wert den ich ursprünglich schreiben wollte bezieht.

-> Ich will die Zahl 11 schreiben, Speicherschutzverletzung ist bei 0x0...11

Jetzt würde ich hier wahrscheinlich nicht schreiben, wenn ich nicht selbst das Gefühl hätte, selber noch etwas Dreck am Stecken zu haben :). Ich habe anfangs der Subfunktion etwas gebastelt. Und zwar möchte ich der Funktion ein Array und einen Hash übergeben. Da Perl dies zusammenmixt in einen Array, übergebe ich die Daten folgendermassen:
Code: (dl )
methode( ([@ARRAY], {%HASH}) );

-> Ich "stülpe" ein Array über den Array und den Hash. Der Sub-Array ist dabei in [0] und der Hash in [1].

In der Methode selbst - und hier ist das Gebastel - lade ich diese folgendermassen zurück:
Code: (dl )
1
2
3
4
5
6
my @tmp = @_;
shift;
@tmp = shift;
my @ARRAY = @{$tmp[0]};
@tmp = shift;
my %HASH = %{$tmp[0]};

(ich glaube nicht, dass das schön ist)

Ist es möglich, dass bei meinem zurückladen Perl etwas falsch interpretiert? Einen Wert als Pointer o.ä.? Das Problem ist mehrfach hintereinander nachvollziehbar, dann ist es wieder weg um irgendwann wieder aufzupoppen obwohl das Programm jedesmal das genau gleiche macht (gleiche Input Daten).

View full thread SpreadSheet::WriteExcel Bufferoverflow?