Debian Bug report logs - #866320
libspreadsheet-writeexcel-perl: uses deprecated POSIX::tmpnam()

version graph

Package: libspreadsheet-writeexcel-perl; Maintainer for libspreadsheet-writeexcel-perl is Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>; Source for libspreadsheet-writeexcel-perl is src:libspreadsheet-writeexcel-perl (PTS, buildd, popcon).

Reported by: Niko Tyni <ntyni@debian.org>

Date: Wed, 28 Jun 2017 20:24:02 UTC

Severity: normal

Found in version libspreadsheet-writeexcel-perl/2.40-1

Forwarded to https://rt.cpan.org/Ticket/Display.html?id=122273

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#866320; Package libspreadsheet-writeexcel-perl. (Wed, 28 Jun 2017 20:24:04 GMT) (full text, mbox, link).


Acknowledgement sent to Niko Tyni <ntyni@debian.org>:
New Bug report received and forwarded. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Wed, 28 Jun 2017 20:24:04 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: Niko Tyni <ntyni@debian.org>
To: submit@bugs.debian.org
Subject: libspreadsheet-writeexcel-perl: uses deprecated POSIX::tmpnam()
Date: Wed, 28 Jun 2017 23:20:06 +0300
Package: libspreadsheet-writeexcel-perl
Version: 2.40-1
Severity: normal
User: debian-perl@lists.debian.org
Usertags: perl-5.26-transition

This package uses POSIX::tmpnam(), deprecated in Perl 5.22
and removed in 5.26 (currently in experimental.)

 lib/Spreadsheet/WriteExcel/Workbook.pm:        $tmp_dir = "POSIX::tmpnam() directory" if not $fh;
 lib/Spreadsheet/WriteExcel/Worksheet.pm:        $tmp_dir = "POSIX::tmpnam() directory" if not $fh;

It looks like this is fallback code that might not be active
so filing at 'normal' for now.
-- 
Niko Tyni   ntyni@debian.org



Information forwarded to debian-bugs-dist@lists.debian.org, Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>:
Bug#866320; Package libspreadsheet-writeexcel-perl. (Wed, 28 Jun 2017 21:33:03 GMT) (full text, mbox, link).


Acknowledgement sent to gregor herrmann <gregoa@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>. (Wed, 28 Jun 2017 21:33:03 GMT) (full text, mbox, link).


Message #10 received at 866320@bugs.debian.org (full text, mbox, reply):

From: gregor herrmann <gregoa@debian.org>
To: Niko Tyni <ntyni@debian.org>, 866320@bugs.debian.org
Subject: Re: Bug#866320: libspreadsheet-writeexcel-perl: uses deprecated POSIX::tmpnam()
Date: Wed, 28 Jun 2017 23:31:59 +0200
[Message part 1 (text/plain, inline)]
On Wed, 28 Jun 2017 23:20:06 +0300, Niko Tyni wrote:

> This package uses POSIX::tmpnam(), deprecated in Perl 5.22
> and removed in 5.26 (currently in experimental.)
> 
>  lib/Spreadsheet/WriteExcel/Workbook.pm:        $tmp_dir = "POSIX::tmpnam() directory" if not $fh;
>  lib/Spreadsheet/WriteExcel/Worksheet.pm:        $tmp_dir = "POSIX::tmpnam() directory" if not $fh;
> 
> It looks like this is fallback code that might not be active
> so filing at 'normal' for now.

Hm, I think it's the default case:


    # In the default case we use IO::File->new_tmpfile(). This may fail, in
    # particular with IIS on Windows, so we allow the user to specify a temp
    # directory via File::Temp.
    #
    if (defined $self->{_tempdir}) {

        # Delay loading File:Temp to reduce the module dependencies.
        eval { require File::Temp };
        die "The File::Temp module must be installed in order ".
            "to call set_tempdir().\n" if $@;


        # Trap but ignore File::Temp errors.
        eval { $fh = File::Temp::tempfile(DIR => $self->{_tempdir}) };

        # Store the failed tmp dir in case of errors.
        $tmp_dir = $self->{_tempdir} || File::Spec->tmpdir if not $fh;
    }
    else {

        $fh = IO::File->new_tmpfile();

        # Store the failed tmp dir in case of errors.
        $tmp_dir = "POSIX::tmpnam() directory" if not $fh;
    }


And $self->{_tempdir} is only set when the user/consumer explicitly
uses the set_tempdir() method.

OTOH, POSIX::tmpnam() is only called when IO::File->new_tmpfile()
fails. But still, this should be fixed, I guess.


Cheers,
gregor, forwarding upstream

-- 
 .''`.  https://info.comodo.priv.at/ - Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Bob Dylan: Not Dark Yet
[signature.asc (application/pgp-signature, inline)]

Set Bug forwarded-to-address to 'https://rt.cpan.org/Ticket/Display.html?id=122273'. Request was from gregor herrmann <gregoa@debian.org> to control@bugs.debian.org. (Wed, 28 Jun 2017 21:33:04 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Tue Apr 23 17:32:34 2024; Machine Name: buxtehude

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.