cpio crashes when LANG is empty.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cpio (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Howto reproduce bug:
Ubuntu 10.04 LTS run in CT on OpenVZ (ubuntu-
1 ) If run perl-script
"
$backup_
print 1;
open (CPIO,"|cpio -ocBv > $backup_tmp");
print CPIO "/etc/apache2/
close (CPIO);
print 2;
sub backup(@_){
open (CPIO,"|cpio -ocBvA -O $backup_tmp 2> /dev/null");
foreach (@_) {
print CPIO $_."\n";
}
close (CPIO);
}
print 3;
backup(
print 4;
"
then output:
1/etc/apache2/
1 block
23*** glibc detected *** cpio: malloc(): memory corruption: 0x0000000001d68300 ***
======= Backtrace: =========
/lib/libc.
/lib/libc.
/lib/libc.
cpio[0x415df9]
cpio[0x403b48]
cpio[0x404043]
cpio[0x4043f6]
cpio[0x406dc2]
cpio[0x408e74]
/lib/libc.
cpio[0x402b19]
======= Memory map: ========
00400000-0041e000 r-xp 00000000 fd:02 10093364 /bin/cpio
0061d000-0061e000 r--p 0001d000 fd:02 10093364 /bin/cpio
0061e000-00620000 rw-p 0001e000 fd:02 10093364 /bin/cpio
01d68000-01d89000 rw-p 00000000 00:00 0 [heap]
7fbd9c000000-
7fbd9c021000-
7fbda02f6000-
7fbda030c000-
7fbda050b000-
7fbda050c000-
7fbda050d000-
7fbda0685000-
7fbda0885000-
7fbda0889000-
7fbda088a000-
7fbda088f000-
7fbda0aa6000-
7fbda0aac000-
7fbda0aae000-
7fbda0aaf000-
7fbda0ab0000-
7fff9d484000-
7fff9d5fe000-
ffffffffff60000
4
and any files not append to cpio.
2 ) # locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE=
LC_MEASUREMENT=
LC_IDENTIFICATI
LC_ALL=
The utility crash if LANG is empty.
3 ) If set locale: export LANG="ru_RU.UTF-8" then script done perfect:
1/etc/apache2/
1 блок
234
4 ) # locale
LANG=ru_RU.UTF-8
LC_CTYPE=
LC_NUMERIC=
LC_TIME=
LC_COLLATE=
LC_MONETARY=
LC_MESSAGES=
LC_PAPER=
LC_NAME=
LC_ADDRESS=
LC_TELEPHONE=
LC_MEASUREMENT=
LC_IDENTIFICATI
LC_ALL=
5 ) uname -r
2.6.32-
description: | updated |
description: | updated |
summary: |
- cpio crashes when locale="POSIX" + cpio crashes when LANG is empty. |
The script in Perl can be replaced by a simple example to bash: tmp="/tmp/ backup. cpio"
"
#!/bin/bash
backup_
find /etc/apache2/ -name "httpd.conf" -print | cpio -ocBv > $backup_tmp
find /etc/apache2/ -name "ports.conf" -print | cpio -ocBvA -O $backup_tmp
"
Now checked cpio-2.10-orig, cpio-2.10-1ubuntu2 and cpio-2.11-orig from src. cpio-2.10-orig, cpio-2.10-1ubuntu2 in bash-test and perl-test crash.
cpio-2.11-orig work fine.
Started debugging...