Bug 1263734

Summary: Net::FTP incorrectly translates text files to NVT when using ASCII transfer mode
Product: Red Hat Enterprise Linux 7 Reporter: Petr Pisar <ppisar>
Component: perlAssignee: Jitka Plesnikova <jplesnik>
Status: CLOSED ERRATA QA Contact: Martin Kyral <mkyral>
Severity: high Docs Contact: Lenka Špačková <lkuprova>
Priority: high    
Version: 7.2CC: isenfeld, jplesnik, mkyral, ovasik, pchavan, perl-maint-list, ppisar, psabata, qe-baseos-apps
Target Milestone: rcKeywords: Patch, Triaged
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: perl-5.16.3-288.el7 Doc Type: Release Note
Doc Text:
Line endings are now preserved in files uploaded with the Net::FTP Perl module in text mode Previously, when uploading a file with the Net::FTP Perl module in text mode, ends of lines in the uploaded file were incorrectly transformed. This update corrects end-of-line normalization from local to Network Virtual Terminal (NVT) encoding when uploading data to an FTP server, and the described problem no longer occurs.
Story Points: ---
Clone Of: 1263378 Environment:
Last Closed: 2016-11-04 00:16:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1203710, 1289025, 1295829, 1313485    
Attachments:
Description Flags
Upstream fix ported to perl-5.16.3 none

Description Petr Pisar 2015-09-16 14:42:12 UTC
+++ This bug was initially created as a clone of Bug #1263378 +++

Transferring a unix text file via ftp with the perl Net:FTP module in ASCII mode leads to incorrect data in the transferred file when the source file contains 2 or more consecutive blank lines due to an incorrect transformation of source data from unix text format to the Network Virtual Terminal (NVT) data format.

[...]
--- Additional comment from Petr Pisar on 2015-09-16 13:20:04 GMT ---

Upstream fixed this issue with libnet's commit:

From 24eb8619451c3d8529d903d9133d03a7f447488f Mon Sep 17 00:00:00 2001
From: Steve Hay <steve.m.hay>
Date: Fri, 3 Jan 2014 17:41:55 +0000
Subject: [PATCH] Fix incorrect handling of CRLF in Net::FTP

----

perl-5.16.3-286.el7.x86_64 is affected.

Comment 2 Petr Pisar 2015-10-27 15:39:18 UTC
Created attachment 1086908 [details]
Upstream fix ported to perl-5.16.3

Comment 4 Jitka Plesnikova 2016-03-03 12:51:38 UTC
How to test:

(1) Install vsftpd server, configure it to enable anonymous upload into /var/ftp/upload directory from localhost, keep ascii_upload_enable=NO.
(2) Install perl, and strict, warnings, Net::FTP, Data::Dumper, Test::More Perl modules.
(3) Store testdata file from https://bugzilla.redhat.com/attachment.cgi?id=1073993 into /tmp/testdata.
(4) Execute reproducer from https://bugzilla.redhat.com/attachment.cgi?id=1073992.
Before:
  The reproducer fails on `remote file matches expected content' test.
  The file stored on the server will have some CR bytes missing.
After:
  The reproducer returns 0 exit code as all tests pass.
  The file stored on the serer will have all CR's converted onto CR-LF pairs.

Comment 8 Jitka Plesnikova 2016-09-27 13:47:28 UTC
It looks good.

Comment 10 errata-xmlrpc 2016-11-04 00:16:04 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2191.html