Re: [PATCH 4/4] leaking_addresses: add scan_once array

From: Tycho Andersen
Date: Sun Feb 25 2018 - 20:10:09 EST


Hi Tobin,

On Mon, Feb 19, 2018 at 01:50:49PM +1100, Tobin C. Harding wrote:
> +sub already_scanned
> +{
> + my ($filename) = @_;
> + state %seen;
> +
> + foreach (@once_only) {
> + if (/^$filename$/) {
> + if ($seen{$_} == 1) {

This should be something like,

if (($seen{$_} //= 0) == 1) {

otherwise I get a bunch of uninitialized warnings,

Use of uninitialized value in pattern match (m//) at /usr/share/perl/5.26/Math/BigInt.pm line 1199.
Math::BigInt::bcmp(Math::BigInt=HASH(0x55dc2f7e4580), undef) called at /usr/share/perl/5.26/Math/BigInt.pm line 1257
Math::BigInt::beq(Math::BigInt=HASH(0x55dc2f7e4580), undef) called at /usr/share/perl/5.26/Math/BigInt.pm line 105
Math::BigInt::__ANON__(Math::BigInt=HASH(0x55dc2f7e4580), undef, 1) called at ./leaking_addresses.pl line 422
main::already_scanned("smaps") called at ./leaking_addresses.pl line 448
main::skip("/proc/1/smaps") called at ./leaking_addresses.pl line 509
main::walk("/proc", "/sys") called at ./leaking_addresses.pl line 159

Tycho