Skip to content

Commit 754e681

Browse files
committed
fix: warnings with new libextism - don't unpack even 0 bytes from NULL pointers
1 parent 64f4e61 commit 754e681

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Extism/lib/Extism/Function.pm

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,16 @@ sub set_namespace {
9191

9292
sub load_raw_array {
9393
my ($ptr, $elm_size, $n) = @_;
94+
$n or return [];
9495
my $input_array = unpack('P'.($elm_size * $n), pack('Q', $ptr));
9596
my @input_packed = unpack("(a$elm_size)*", $input_array);
9697
return \@input_packed;
9798
}
9899

99100
sub host_function_caller_perl {
100101
my ($current_plugin, $input_ptr, $input_len, $output_ptr, $output_len, $user_data) = @_;
101-
#print Dumper(\@_);
102102
local $Extism::CurrentPlugin::instance = $current_plugin;
103-
my $input_packed = \@{load_raw_array($input_ptr, 16, $input_len)};
103+
my $input_packed = load_raw_array($input_ptr, 16, $input_len);
104104
my @input = map {
105105
my $type = unpack('L', $_);
106106
my $value = substr($_, 8);
@@ -126,6 +126,7 @@ sub host_function_caller_perl {
126126
}
127127
my @outputs = $user_data->{func}(@input);
128128
scalar(@outputs) <= $output_len or croak "host function returned too many outputs";
129+
$output_len or return;
129130
{
130131
my $i = 0;
131132
foreach my $item (@{$user_data->{conversions}{outputs}}) {

0 commit comments

Comments
 (0)