Wed Nov 30 15:37:46 2016: Request 119080 was acted upon.
Transaction: Ticket created by mi...@noromaa.fi
       Queue: Win32-API
     Subject: Win32::API::Call: parameter X had a buffer overflow with UTF-8 
strings
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: mi...@noromaa.fi
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=119080 >


Hello,

use strict;
use Win32::API;
use Encode;

my $data = Encode::decode('UTF-8',"The price is \xe2\x82\xac5.");

my $WriteFile = Win32::API->new('kernel32.dll', 'WriteFile', 'IPIPI', 'i')
or die "Unable to load WriteFile: $!";

my $written = " " x 4;
$WriteFile->Call(0, $data, 4, $written, 0);

This fails with:

Win32::API::Call: parameter 2 had a buffer overflow

Tested on ActiveState Perl v. 5.22.1 and 5.18.2, Win::API versions 0.84,
0.82 and 0.75. Same problem happened on all of them.

--

Mikko Noromaa (mi...@noromaa.fi) - tel. +358 40 7348034

Reply via email to