xref: /openbsd-src/gnu/usr.bin/perl/cpan/Sys-Syslog/t/cpan-rt-64287.t (revision de8cc8edbc71bd3e3bc7fbffa27ba0e564c37d8b)
1*de8cc8edSafresh1#!perl
2*de8cc8edSafresh1use strict;
3*de8cc8edSafresh1use Test::More;
4*de8cc8edSafresh1
5*de8cc8edSafresh1plan tests => 4;
6*de8cc8edSafresh1
7*de8cc8edSafresh1# --------------------
8*de8cc8edSafresh1# CPAN-RT #64287: Avoid memory corruption when closelog() is called twice.
9*de8cc8edSafresh1#
10*de8cc8edSafresh1use Sys::Syslog;
11*de8cc8edSafresh1
12*de8cc8edSafresh1openlog("Sys::Syslog", "pid", "user");
13*de8cc8edSafresh1syslog(debug => "Lorem ipsum dolor sit amet");
14*de8cc8edSafresh1
15*de8cc8edSafresh1# first call to closelog()
16*de8cc8edSafresh1eval { closelog() };
17*de8cc8edSafresh1is($@, "", "closelog()");
18*de8cc8edSafresh1
19*de8cc8edSafresh1# create a variable with a reference to something
20*de8cc8edSafresh1$a = {};
21*de8cc8edSafresh1isa_ok($a, "HASH");
22*de8cc8edSafresh1
23*de8cc8edSafresh1# second call to closelog()
24*de8cc8edSafresh1eval { closelog() };
25*de8cc8edSafresh1is($@, "", "closelog()");
26*de8cc8edSafresh1
27*de8cc8edSafresh1# check that the variable still is what it's supposed to be
28*de8cc8edSafresh1isa_ok($a, "HASH");
29*de8cc8edSafresh1
30