Processed: your mail

2013-06-26 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

> tags 709992 + patch
Bug #709992 [src:eglibc] eglibc: FTBFS: Assembler messages: Error: bad register 
expression
Ignoring request to alter tags of bug #709992 to the same tags previously set
> thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
709992: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=709992
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/handler.s.c.137227028123402.transcr...@bugs.debian.org



Processed: tagging 709992

2013-06-26 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

> tags 709992 + patch
Bug #709992 [src:eglibc] eglibc: FTBFS: Assembler messages: Error: bad register 
expression
Added tag(s) patch.
> thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
709992: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=709992
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/handler.s.c.137227013122734.transcr...@bugs.debian.org



Bug#714219: libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software

2013-06-26 Thread Thorsten Glaser
Package: libc6
Version: 2.17-6
Severity: important

Hi,

GNU libc6 in sid is breaking GNU CVS; some operations can
cause a segfault. I’ve tracked it down to:

tglase@tglase:~ $ cat x.c
#define _GNU_SOURCE
#include 
#include 
#include 
#include 

void tst(const char *, const char *);
void tst(const char *x, const char *y) {
const char *z;
int e;

z = crypt(x, y);
e = errno;
printf("tst(\"%s\", \"%s\")\n -> %p %s\n -> %s\n",
x, y, z, z?z:"(null)", z?"(ok)":strerror(e));
}

int main(void) {
tst("foo", "xy7k69x/M/s7g");
tst("bar", "xy7k69x/M/s7g");
tst("   ", "%qb?,db=yu'd,0h0%db:3?,c?=,d dZ,?=I:yZZ30 eZy=a%0 d");
return (0);
}
tglase@tglase:~ $ gcc -O2 -o x x.c -lcrypt
tglase@tglase:~ $ ./x
tst("foo", "xy7k69x/M/s7g")
 -> 0xf77b7140 xy7k69x/M/s7g
 -> (ok)
tst("bar", "xy7k69x/M/s7g")
 -> 0xf77b7140 xy5FOaP3Hea0k
 -> (ok)
tst("   ", "%qb?,db=yu'd,0h0%db:3?,c?=,d dZ,?=I:yZZ30 eZy=a%0 d")
 -> (nil) (null)
 -> Invalid argument
tglase@tglase:~ $ scp x ${wheezysystem}:
x  
100% 5707 5.6KB/s   00:00
tglase@tglase:~ $ ssh ${wheezysystem} ./x
tst("foo", "xy7k69x/M/s7g")
 -> 0xb7742140 xy7k69x/M/s7g
 -> (ok)
tst("bar", "xy7k69x/M/s7g")
 -> 0xb7742140 xy5FOaP3Hea0k
 -> (ok)
tst("   ", "%qb?,db=yu'd,0h0%db:3?,c?=,d dZ,?=I:yZZ30 eZy=a%0 d")
 -> 0xb7742140 %q7LLO/mNILqg
 -> (ok)

POSIX says crypt(3) only fails with ENOSYS if it’s not supported
at all, but then it’d fail consistently:

ERRORS  
 

 
 The crypt() function shall fail if:
 
   [ENOSYS] 
 
  The functionality is not supported on this implementation.
 

POSIX then goes on to use crypt() just like GNU CVS does:

if (strcmp(p->pw_passwd, crypt(oldpasswd, p->pw_passwd)) == 0) {
 

Other implementations (like BSD) also strongly suggest that,
unless a different algorithm is selected ($1$, $2a$, etc.)
DES is used, which the above example clearly states is supported,
and overlong salts are just cut off / their trail end ignored.

23:51⎜ in musl, we return "*" on error

If this is an error at all… on wheezy it was none, and BSD agrees:

tg@blau:~ $ uname -a; ./x   

MirBSD blau.mirbsd.org 10 Kv#10uB2-20130517 GENERIC#1405 i386
tst("foo", "xy7k69x/M/s7g")
 -> 0x23af3720 xy7k69x/M/s7g
 -> (ok)
tst("bar", "xy7k69x/M/s7g")
 -> 0x23af3720 xy5FOaP3Hea0k
 -> (ok)
tst("   ", "%qb?,db=yu'd,0h0%db:3?,c?=,d dZ,?=I:yZZ30 eZy=a%0 d")
 -> 0x23af3720 %q3ge9F/nF3ec
 -> (ok)

Although the output on wheezy differs (it shouldn’t).


Please fix this to at least never return NULL with something
else than an ENOSYS condition (crypt(3) not implemented at all),
because this *will* break unrelated software.

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (100, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.9-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=C, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/lksh

Versions of packages libc6 depends on:
ii  libgcc1  1:4.8.1-4

Versions of packages libc6 recommends:
ii  libc6-i686  2.17-6

Versions of packages libc6 suggests:
ii  debconf [debconf-2.0]  1.5.50
ii  glibc-doc  2.17-6
ii  locales-all [locales]  2.17-6

-- debconf information:
* glibc/upgrade: true
  glibc/disable-screensaver:
  glibc/restart-failed:
* glibc/restart-services: postfix openbsd-inetd cups cron
* libraries/restart-without-asking: true


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20130626220647.9086.25208.report...@tglase.lan.tarent.de



Bug#714219: libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software

2013-06-26 Thread Carlos O'Donell
>From the 2.17 NEWS:

* The `crypt' function now fails if passed salt bytes that violate the
  specification for those values.  On Linux, the `crypt' function will
  consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is
  enabled, and fail on encrypted strings using the MD5 or DES algorithm
  when the mode is enabled.

> tst("   ", "%qb?,db=yu'd,0h0%db:3?,c?=,d dZ,?=I:yZZ30 eZy=a%0 d");

This string contains invalid salt crypt character.

POSIX says:
~~~
Otherwise, it shall return a null pointer and set errno to indicate the error.
~~~

Therefore returning null and setting errno is entirely appropriate.

All conforming applications should check for NULL.

Conforming implementations may return additional errors to those
listed by POSIX
It is only a problem if you don't return the listed errno for the same error.

> if (strcmp(p->pw_passwd, crypt(oldpasswd, p->pw_passwd)) == 0) {

Examples are non-normative. They are simply informative and may assume things
like always using valid salt characters.

> If this is an error at all… on wheezy it was none, and BSD agrees:

It is not an error. You can't use invalid salt strings.

> Please fix this to at least never return NULL with something
> else than an ENOSYS condition (crypt(3) not implemented at all),
> because this *will* break unrelated software.

That will not get accepted upstream.

Please fix your application to conform with POSIX.

You must check the result and act appropriately when you see a NULL return
including cleaning the input to contain only valid salt characters.

Cheers,
Carlos.


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/cae2ss1jpngrj9z2pezx3wewetahpyrzjcxlwmnidcete5qo...@mail.gmail.com



Bug#714219: Acknowledgement (libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software)

2013-06-26 Thread Thorsten Glaser
Debian Bug Tracking System dixit:

>If you wish to submit further information on this problem, please
>send it to 714...@bugs.debian.org.

Oh well, a '%' is not in the list of DES inputs, so differing
is permitted, but returning NULL is so very not nice.

Shortening the string shows “DES” can be done on it, so do it;
just return "*" (or "x" if the input is "*" so it never matches)
if you absolutely can’t return anything else useful.

(We continued this discussion in IRC…)

bye,
//mirabilos
-- 
17:08⎜«Vutral» früher gabs keine packenden smartphones und so
17:08⎜«Vutral» heute gibts frauen die sind facebooksüchtig
17:10⎜«Vutral» aber auch traurig; früher warst du als nerd voll am arsch
17:10⎜«Vutral» heute bist du als nerd der einzige der wirklich damit klarkommt


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/pine.bsm.4.64l.1306262247030.3...@herc.mirbsd.org



Fwd: Bug report on eperl: eperl crashes with exit status 139 [origin: alexan...@cmu.edu]

2013-06-26 Thread Axel Beckert
Hi eglibc maintainers,

the attached crash in eperl looks like a bug in getopt_long of libc6
to me:

[   18.024562] eperl[2718]: segfault at 1 ip b74b0d4f sp bf9457ec error 4 in 
libc-2.17.so[b7433000+1a9000]

Backtrace:

Program received signal SIGSEGV, Segmentation fault.
__strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
32  ../sysdeps/x86_64/multiarch/../strlen.S: No such file or directory.
(gdb) bt
#0  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
#1  0x770e4872 in _getopt_internal_r (argc=, 
argv=, optstring=, 
longopts=, longind=, long_only=, d=0x773b6de0, posixly_correct=0)
at getopt.c:544
#2  0x770e569b in _getopt_internal (argc=1, argv=0x7fffe228, 
optstring=0x0, longopts=0x1, longind=0x0, 
long_only=0, posixly_correct=0) at getopt.c:1131
#3  0x770e5783 in getopt_long (argc=1, argv=0x7fffe228, 
options=0x0, long_options=0x1, opt_index=0x0)
at getopt1.c:66
#4  0x0040376c in main ()

Minimal case to reproduce it: "eperl --="

Once the bug report is filed, I'd reassign it to libc6 -- unless
someone objects.

Regards, Axel
-- 
 ,''`.  |  Axel Beckert , http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
  `-|  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
--- Begin Message ---
Hi,

We found a crash in eperl contained in the eperl package. You are being
contacted because your are listed as one of the maintainer of eperl.

We are planning to submit the bug to the Debian bug tracking system in two
weeks. We wanted to give you a heads-up, so that you some time to assess the
seriousness of the bug before it is publicly disclosed.

The bug report that will be submitted to the bug tracker is available at the
following url:

  
http://www.forallsecure.com/bug-reports/f526d6b489779b4d30b380f3ce77b09e3be31471/

This email is part of a mass bug reporting campain comprising 1,182 bugs. You
might have received multiple emails from us concerning different programs. More
information about the mass bug reporting is available on the debian-devel
mailing list:

  http://lists.debian.org/debian-devel/2013/06/msg00720.html

Regards,
The Mayhem Team
Cylab, Carnegie Mellon University
--- End Message ---


Re: Fwd: Bug report on eperl: eperl crashes with exit status 139 [origin: alexan...@cmu.edu]

2013-06-26 Thread Bastian Blank
On Thu, Jun 27, 2013 at 01:07:13AM +0200, Axel Beckert wrote:
> #3  0x770e5783 in getopt_long (argc=1, argv=0x7fffe228, 
> options=0x0, long_options=0x1, opt_index=0x0)
> at getopt1.c:66

Why are the options and long_options arguments shown with nonsense
contents?

Bastian

-- 
In the strict scientific sense we all feed on death -- even vegetarians.
-- Spock, "Wolf in the Fold", stardate 3615.4


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130626231125.ga23...@mail.waldi.eu.org



Re: Processed: notfound 713035 in 2.17-5

2013-06-26 Thread Aurelien Jarno
found 2.17-1
thanks

On Tue, Jun 25, 2013 at 11:06:17AM +, Debian Bug Tracking System wrote:
> Processing commands for cont...@bugs.debian.org:
> 
> > notfound 713035 2.17-5
> Bug #713035 [libc6] FTBFS on amd64/ia64 testsuite fails
> No longer marked as found in versions eglibc/2.17-5.

This is actually wrong. The problem is not new on the package side, but
on the way the amd64 and ia64 build daemons are setup (using tmpfs to
build packages). This mail therefore fixes the version in the BTS.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130626234107.gc13...@hall.aurel32.net



Re: Fwd: Bug report on eperl: eperl crashes with exit status 139 [origin: alexan...@cmu.edu]

2013-06-26 Thread Aurelien Jarno
On Thu, Jun 27, 2013 at 01:07:13AM +0200, Axel Beckert wrote:
> Hi eglibc maintainers,
> 
> the attached crash in eperl looks like a bug in getopt_long of libc6
> to me:
> 
> [   18.024562] eperl[2718]: segfault at 1 ip b74b0d4f sp bf9457ec error 4 in 
> libc-2.17.so[b7433000+1a9000]
> 
> Backtrace:
> 
> Program received signal SIGSEGV, Segmentation fault.
> __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
> 32  ../sysdeps/x86_64/multiarch/../strlen.S: No such file or directory.
> (gdb) bt
> #0  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
> #1  0x770e4872 in _getopt_internal_r (argc=, 
> argv=, optstring=, 
> longopts=, longind=, long_only= out>, d=0x773b6de0, posixly_correct=0)
> at getopt.c:544
> #2  0x770e569b in _getopt_internal (argc=1, argv=0x7fffe228, 
> optstring=0x0, longopts=0x1, longind=0x0, 
> long_only=0, posixly_correct=0) at getopt.c:1131
> #3  0x770e5783 in getopt_long (argc=1, argv=0x7fffe228, 
> options=0x0, long_options=0x1, opt_index=0x0)
> at getopt1.c:66
> #4  0x0040376c in main ()
> 
> Minimal case to reproduce it: "eperl --="
> 
> Once the bug report is filed, I'd reassign it to libc6 -- unless
> someone objects.

I object. The problem is clearly on the eperl side, which passes to
getopt_long an option structure not ended by { 0, 0, 0, 0 }.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130626234955.gd13...@hall.aurel32.net



Bug#714219: Acknowledgement (libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software)

2013-06-26 Thread Aurelien Jarno
On Wed, Jun 26, 2013 at 10:48:55PM +, Thorsten Glaser wrote:
> Debian Bug Tracking System dixit:
> 
> >If you wish to submit further information on this problem, please
> >send it to 714...@bugs.debian.org.
> 
> Oh well, a '%' is not in the list of DES inputs, so differing
> is permitted, but returning NULL is so very not nice.
> 
> Shortening the string shows “DES” can be done on it, so do it;
> just return "*" (or "x" if the input is "*" so it never matches)
> if you absolutely can’t return anything else useful.
> 
> (We continued this discussion in IRC…)

As the function is POSIX compliant, it looks like to me a documentation
issue. Should this bug be reassigned to manpages-dev to mention the fact
that the function might return NULL in case of error?

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130626233558.ga13...@hall.aurel32.net



Re: Fwd: Bug report on eperl: eperl crashes with exit status 139 [origin: alexan...@cmu.edu]

2013-06-26 Thread Axel Beckert
Hi Aurelien!

Aurelien Jarno wrote:
> I object. The problem is clearly on the eperl side, which passes to
> getopt_long an option structure not ended by { 0, 0, 0, 0 }.

Thanks for that hint!

Regards, Axel
-- 
 ,''`.  |  Axel Beckert , http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
  `-|  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130626235637.gr30...@sym.noone.org



Bug#714219: Acknowledgement (libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software)

2013-06-26 Thread Thorsten Glaser
Aurelien Jarno dixit:

>As the function is POSIX compliant, it looks like to me a documentation
>issue. Should this bug be reassigned to manpages-dev to mention the fact
>that the function might return NULL in case of error?

The NULL-in-case-of-error mentioned by POSIX is when the
function is not implemented *at all*, i.e. all calls to
it would fail independent of the input (and then, you’d
have bigger problems).

Even the example code given in POSIX uses crypt() without
checking for NULL explicitly, assuming it’ll always get a
string out that just won’t compare equally if it’s not a
valid password.

There’s bound to be lots of software that uses crypt() like
this, especially as this behaviour has been in existence for
*decades* literally, and will continue to be on other OSes.

This probably *will* introduce security holes, especially
when the password hash is user-controlled; libc should behave
sanely here and just fall back to “DES”. Or just return "*"
unless the argument is "*" in which case it can return "x".

I find it especially poor form of GNU when the GNU libc
breaks other GNU software…

bye,
//mirabilos
-- 
Yay for having to rewrite other people's Bash scripts because bash
suddenly stopped supporting the bash extensions they make use of
-- Tonnerre Lombard in #nosec


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/pine.bsm.4.64l.1306262348430.3...@herc.mirbsd.org



Re: Bug#714219: Acknowledgement (libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software)

2013-06-26 Thread Aurelien Jarno
On Wed, Jun 26, 2013 at 11:53:39PM +, Thorsten Glaser wrote:
> Aurelien Jarno dixit:
> 
> >As the function is POSIX compliant, it looks like to me a documentation
> >issue. Should this bug be reassigned to manpages-dev to mention the fact
> >that the function might return NULL in case of error?
> 
> The NULL-in-case-of-error mentioned by POSIX is when the
> function is not implemented *at all*, i.e. all calls to
> it would fail independent of the input (and then, you’d
> have bigger problems).

This is *your* interpretation of POSIX. Quoting it, there is no
ambiguity that crypt can return NULL for any failure (i.e. not
successful completion):

| Upon successful completion, crypt() shall return a pointer to the
| encoded string. The first two bytes of the returned value shall be those
| of the salt argument. Otherwise, it shall return a null pointer and set
| errno to indicate the error.
 

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130627001037.ge13...@hall.aurel32.net



Bug#712047: marked as done (libc6-dev: cannot build C programs)

2013-06-26 Thread Debian Bug Tracking System
Your message dated Thu, 27 Jun 2013 01:37:07 +0200
with message-id <20130626233707.gb13...@hall.aurel32.net>
and subject line Re: Bug#712047: libc6-dev: cannot build C programs
has caused the Debian Bug report #712047,
regarding libc6-dev: cannot build C programs
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
712047: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712047
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: libc6-dev
Version: 2.13-38
Severity: important

Hello,

I tried building a C program with libc-dev installed.

The program would not build because headers were missing:

libc6-dev-i386: /usr/include/bits
libc6-dev:amd64: /usr/include/x86_64-linux-gnu/bits/predefs.h
linux-libc-dev:amd64: /usr/include/x86_64-linux-gnu/asm/errno.h
gcc-multilib: /usr/include/asm


For the asm/errno.h (referenced from common header) to be present gcc-multilib 
must be installed.

Similarily for bits/predefs.h to be present libc6-dev-i386 must be installed.

The libc6-dev package is incomplete and cannot stand on its own.

Dependency on gcc-multilib is bogus. It requires specific version of gcc 
installed.

Also, libc6-dev does not depend on these packages.

Please make a libc package against which C programs do compile.

Thanks

Michal



-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.8-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages libc6-dev depends on:
ii  libc-dev-bin2.13-38
ii  libc6   2.13-38
ii  linux-libc-dev  3.2.41-2

Versions of packages libc6-dev recommends:
ii  gcc [c-compiler]  4:4.7.2-1
ii  gcc-4.4 [c-compiler]  4.4.7-2
ii  gcc-4.7 [c-compiler]  4.7.2-5

Versions of packages libc6-dev suggests:
pn  glibc-doc 
pn  manpages-dev  

-- no debconf information


-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (910, 'testing'), (900, 'stable'), (610, 'oldstable'), (410, 
'unstable'), (200, 'experimental'), (150, 'precise-updates'), (150, 
'precise-security'), (150, 'precise')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.8-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libc6-dev depends on:
ii  libc-dev-bin2.17-3
ii  libc6   2.17-3
ii  linux-libc-dev  3.8.13-1

Versions of packages libc6-dev recommends:
ii  bcc [c-compiler]  0.16.17-3.1
ii  gcc [c-compiler]  4:4.7.2-1
ii  gcc-4.6 [c-compiler]  4.6.3-15
ii  gcc-4.7 [c-compiler]  4.7.2-5

Versions of packages libc6-dev suggests:
pn  glibc-doc 
ii  manpages-dev  3.44-1

-- no debconf information
--- End Message ---
--- Begin Message ---
On Thu, Jun 13, 2013 at 11:50:40AM +0200, Michal Suchanek wrote:
> Excerpts from Aurelien Jarno's message of Wed Jun 12 18:17:13 +0200 2013:
> > tag 712047 + moreinfo
> > thanks
> > 
> > On Wed, Jun 12, 2013 at 04:30:08PM +0200, Michal Suchanek wrote:
> > > Package: libc6-dev
> > > Version: 2.13-38
> > > Severity: important
> > > 
> > > Hello,
> > > 
> > > I tried building a C program with libc-dev installed.
> > > 
> > > The program would not build because headers were missing:
> > > 
> > > libc6-dev-i386: /usr/include/bits
> > 
> > You don't need this one, your compiler should look into
> > /usr/include/x86_64-linux-gnu/bits.
> > 
> > > libc6-dev:amd64: /usr/include/x86_64-linux-gnu/bits/predefs.h
> > 
> > This is libc6-dev the package you are reporting the bug against,
> > so it can't be missing.
> 
> No, it's just wrong place.
> 
> > 
> > > linux-libc-dev:amd64: /usr/include/x86_64-linux-gnu/asm/errno.h
> > 
> > libc6-dev already depends on this one.
> > 
> > > gcc-multilib: /usr/include/asm
> > 
> > You don't need this one, your compiler should already lokk into 
> > /usr/include/x86_64-linux-gnu/asm.
> 
> It does not.
> 
> > > 
> > > For the asm/errno.h (referenced from common header) to be present 
> > > gcc-multilib must be installed.
> > > 
> > > Similarily for bits/predefs.h to be present libc6-dev-i386 must be 
> > > installed.
> > > 
> > > The libc6-dev package is incomplete and cannot stand on its own.
> > > 
> > > Dependency on gcc-multilib is bogus. It requires specific version of gcc 
> > > installed.
> > > 
> > > Also, libc6-dev does not depend on these packages.
> > > 
> > > Please make a libc package against

Processed: Re: Bug#713836: regcomp(3) writes past end of regex_t

2013-06-26 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

> tag 713836 + unreproducible
Bug #713836 [libc6] regcomp(3) writes past end of regex_t; breaks kernel compile
Added tag(s) unreproducible.
> tag 713836 + moreinfo
Bug #713836 [libc6] regcomp(3) writes past end of regex_t; breaks kernel compile
Added tag(s) moreinfo.
> thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
713836: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713836
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/handler.s.c.137229270030540.transcr...@bugs.debian.org



Re: Bug#714219: Acknowledgement (libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software)

2013-06-26 Thread Thorsten Glaser
Aurelien Jarno dixit:

>ambiguity that crypt can return NULL for any failure (i.e. not
>successful completion):

Indeed, but, one, it doesn’t list any other error code (nor do
the glibc manpages) and two, there _is_ something called common
law: it’s been like this for decades.

>This is *your* interpretation of POSIX. Quoting it, there is no

Do you, by inaction, want to sign responsible for all security
holes introduced into previously-working code in the archive
that now, without even a recompilation, breaks?

Or will you add some small patch fixing this behaviour and
feed that patch also upstream?

I do not disagree that user programs “probably” “should” check
for NULL, but let’s face reality. And libc *also* has some part
in the job: it should not make userspace’s live too hard.

bye,
//mirabilos
-- 
Support mksh as /bin/sh and RoQA dash NOW!
‣ src:bash (260 (281) bugs: 0 RC, 182 (196) I&N, 78 (85) M&W, 0 (0) F&P)
‣ src:dash (87 (103) bugs: 3 RC, 41 (46) I&N, 43 (54) M&W, 0 F&P)
‣ src:mksh (2 bugs: 0 RC, 0 I&N, 2 M&W, 0 F&P, 1 gift)
http://qa.debian.org/data/bts/graphs/d/dash.png is pretty red, innit?


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/pine.bsm.4.64l.1306270024230.3...@herc.mirbsd.org



Re: Bug#714219: Acknowledgement (libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software)

2013-06-26 Thread Aurelien Jarno
On Thu, Jun 27, 2013 at 12:28:22AM +, Thorsten Glaser wrote:
> Aurelien Jarno dixit:
> 
> >ambiguity that crypt can return NULL for any failure (i.e. not
> >successful completion):
> 
> Indeed, but, one, it doesn’t list any other error code (nor do
> the glibc manpages) and two, there _is_ something called common
> law: it’s been like this for decades.
> 
> >This is *your* interpretation of POSIX. Quoting it, there is no
> 
> Do you, by inaction, want to sign responsible for all security
> holes introduced into previously-working code in the archive
> that now, without even a recompilation, breaks?
> 
> Or will you add some small patch fixing this behaviour and
> feed that patch also upstream?
> 

Please provide a patch, and I will add it in the next upload. If you
don't, you will sign responsible for all security holes introduced into
previously-working code in the archive.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130627004702.gi13...@hall.aurel32.net



Bug#713836: regcomp(3) writes past end of regex_t

2013-06-26 Thread Aurelien Jarno
tag 713836 + unreproducible
tag 713836 + moreinfo
thanks

On Sun, Jun 23, 2013 at 02:59:20AM -0400, sacrificial-spam-addr...@horizon.com 
wrote:
> Package: libc6
> Version: 2.17-6
> Architecture: i386
> Severity: important
> 
> This problem cropped up while compiling the kernel; it breaks
> arch/x86/tools/relocs.c.  I've tracked it down and reduced
> it to a small test case.
> 
> With the given arguments, regcomp() corrupts the byte past the end of
> its supplied regex_t buffer.  This obviously can cause any manner of
> undesired program behavior.
> 
> Note that this is 32-bit i386, not 64-bit.
> 
> Here's a simple test program:
> 
> #include 
> #include 
> #include 
> 
> regex_t array[2];
> 
> static bool
> is_zero(void const *p, size_t len)
> {
>   size_t i;
>   unsigned char const *pp = p;
>   bool rv = true;
> 
>   for (i = 0; i < len; i++) {
>   if (pp[i]) {
>   printf("J'accuse!  buf[%zu] = %#x\n",
>   i, pp[i]);
>   rv = false;
>   }
>   }
>   return rv;
> }
> 
> int
> main(void)
> {
>   if (is_zero(array+1, sizeof array[1]))
>   printf("array[1] confirmed all-zero\n");
>   regcomp(array+0, "^pa_", REG_EXTENDED|REG_NOSUB);
>   if (is_zero(array+1, sizeof array[1]))
>   printf("array[1] confirmed all-zero\n");
>   else
>   printf("Bug!  array[1] has been overwritten!\n");
>   return 0;
> }
> 
> And here's what running it produces:
> $ ./a.out
> array[1] confirmed all-zero
> J'accuse!  buf[0] = 0x18
> Bug!  array[1] has been overwritten!
> $ ldd ./a.out
> linux-gate.so.1 (0xf7784000)
> libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75ea000)
> /lib/ld-linux.so.2 (0xf7785000)
> 
> (The fact that the libc6-i686 libraries, which I have installed, are
> not being used is due libc6-i686 postinst not handling multiarch; I'll
> report that separately.)

I am personally not able to to reproduce the issue with your test
program on an up to date i386 sid system. Could you please provide us
the command you are using to compile the test code and the locale you
are using?

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130627002456.gf13...@hall.aurel32.net



Bug#713837: libc6-i686 postinst fails to parse dpkg-query output

2013-06-26 Thread Aurelien Jarno
On Sun, Jun 23, 2013 at 07:18:39PM +0200, Tomas Janousek wrote:
> Hi,
> 
> On Sun, Jun 23, 2013 at 03:13:43AM -0400, 
> sacrificial-spam-addr...@horizon.com wrote:
> > Although this doesn't break anything else, it renders the package useless.
> 
> It does break stuff. The nvidia driver for example -- it loads
> /usr/lib/i386-linux-gnu/libnvidia-tls.so.319.23 instead of
> /usr/lib/i386-linux-gnu/tls/libnvidia-tls.so.319.23, and the non-tls library
> writes to %gs and segfaults when starting X, making the system very much
> unusable.
> 

Why do we still provide a non-tls version of this library?

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130627002600.gg13...@hall.aurel32.net



Re: Bug#714219: Acknowledgement (libc6: crypt(3) returns NULL with EINVAL instead of falling back to DES, breaking GNU software)

2013-06-26 Thread Thorsten Glaser
Aurelien Jarno dixit:

>Please provide a patch, and I will add it in the next upload. If you
>don't, you will sign responsible for all security holes introduced into
>previously-working code in the archive.

It's freaking late at night, and I just spent hours fighting
with gnulib and *then* hours I'd rather be doing something
else discovering, analysing and discussing it, so gimme a
rest, I've got to work for money romoeeow. You responded first
that's why I wrote that.

If you dont have a patch tomorrow evening i'll try to oblige.

//mirabilos
-- 
17:08⎜«Vutral» früher gabs keine packenden smartphones und so
17:08⎜«Vutral» heute gibts frauen die sind facebooksüchtig
17:10⎜«Vutral» aber auch traurig; früher warst du als nerd voll am arsch
17:10⎜«Vutral» heute bist du als nerd der einzige der wirklich damit klarkommt


--
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/pine.bsm.4.64l.1306270100220.3...@herc.mirbsd.org



Bug#713836: regcomp(3) writes past end of regex_t

2013-06-26 Thread sacrificial-spam-address
> I am personally not able to to reproduce the issue with your test
> program on an up to date i386 sid system. Could you please provide us
> the command you are using to compile the test code and the locale you
> are using?

Very interesting!  I'm also using an up-to-date sid system.
No locale is set.

I had been holding off on upgrading other machines to 2.17-6 because
of this, but I just went and upgraded one and it also does
not show the problem.  WTF?  The one major difference is that it's 
running a 32-bit kernel as opposed to a 64-bit one.

Anyway, here's some hopefully useful information (blank lines added
for readability)

Script started on Thu Jun 27 01:13:16 2013
[500]$ gcc -v bug.c
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.8/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.1-4' 
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs 
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr 
--program-suffix=-4.8 --enable-shared --enable-linker-build-id 
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix 
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls 
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug 
--enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin 
--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk 
--enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386/jre 
--enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386 
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-i386 
--with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar 
--enable-objc-gc --enable-targets=all --enable-multiarch --with-arch-32=i586 
--with-multili
 b-list=m32,m64,mx32 --with-tune=generic --enable-checking=release 
--build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.8.1 (Debian 4.8.1-4) 
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i586'
 /usr/lib/gcc/i486-linux-gnu/4.8/cc1 -quiet -v -imultilib . -imultiarch 
i386-linux-gnu bug.c -quiet -dumpbase bug.c -mtune=generic -march=i586 -auxbase 
bug -version -o /tmp/ccnfNMA2.s
GNU C (Debian 4.8.1-4) version 4.8.1 (i486-linux-gnu)
compiled by GNU C version 4.8.1, GMP version 5.1.2, MPFR version 
3.1.1-p2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/i386-linux-gnu"
ignoring nonexistent directory 
"/usr/lib/gcc/i486-linux-gnu/4.8/../../../../i486-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/i486-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/i486-linux-gnu/4.8/include-fixed
 /usr/include/i386-linux-gnu
 /usr/include
End of search list.
GNU C (Debian 4.8.1-4) version 4.8.1 (i486-linux-gnu)
compiled by GNU C version 4.8.1, GMP version 5.1.2, MPFR version 
3.1.1-p2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: b99bb83419f5bdeabc03ef14532498a2
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i586'
 as -v --32 -o /tmp/ccOPAAts.o /tmp/ccnfNMA2.s
GNU assembler version 2.23.52 (i486-linux-gnu) using BFD version (GNU Binutils 
for Debian) 2.23.52.20130620
COMPILER_PATH=/usr/lib/gcc/i486-linux-gnu/4.8/:/usr/lib/gcc/i486-linux-gnu/4.8/:/usr/lib/gcc/i486-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.8/:/usr/lib/gcc/i486-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/i486-linux-gnu/4.8/:/usr/lib/gcc/i486-linux-gnu/4.8/../../../i386-linux-gnu/:/usr/lib/gcc/i486-linux-gnu/4.8/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/i486-linux-gnu/4.8/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i586'
 /usr/lib/gcc/i486-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr 
-m elf_i386 --hash-style=gnu -dynamic-linker /lib/ld-linux.so.2 
/usr/lib/gcc/i486-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o 
/usr/lib/gcc/i486-linux-gnu/4.8/../../../i386-linux-gnu/crti.o 
/usr/lib/gcc/i486-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/i486-linux-gnu/4.8 
-L/usr/lib/gcc/i486-linux-gnu/4.8/../../../i386-linux-gnu 
-L/usr/lib/gcc/i486-linux-gnu/4.8/../../../../lib -L/lib/i386-linux-gnu 
-L/lib/../lib -L/usr/lib/i386-linux-gnu -L/usr/lib/../lib 
-L/usr/lib/gcc/i486-linux-gnu/4.8/../../.. /tmp/ccOPAAts.o -lgcc --as-needed 
-lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed 
/usr/lib/gcc/i486-linux-gnu/4.8/crtend.o 
/usr/lib/gcc/i486-linux-gnu/4.8/../../../i386-linux-gnu/crtn.o
[501]$ ./a.out
array[1] confirmed all-zero
J'accuse!  buf[0] = 0x18
Bug!  array[1] has been overwritten!

[502]$ gcc -O bug.c
[503]$ ./a.out
array[1] confirmed all-zero
J'accuse!  buf[0] = 0x18
Bug!  array[1] has been overwritten!

[504]$ gcc -O2 bug.c
[505]$ ./a.out
array[1] 

Bug#713836: regcomp(3) writes past end of regex_t

2013-06-26 Thread sacrificial-spam-address
Okay, I did a bit of comparison.  The machine the binary was *compiled*
on seemed to matter, not the one it was *run* on.  A bit of extra
printing revealed the obvious culprit:

[539]$ ./a.out
sizeof regex_t = 28
array[1] confirmed all-zero
J'accuse!  buf[0] = 0x18
Bug!  array[1] has been overwritten!

[524]$ ./a.out
sizeof regex_t = 32
array[1] confirmed all-zero
array[1] confirmed all-zero

It's obviously a header file issue.  I will go investigate.
The /usr/include/regex.h files are identical between the machines,
it must be something else...

Aha!  Where did /usr/local/include/sys/types.h come from?  It's
been there since 2007 and never caused a problem until now...

Anyway, the difference seems to boil down to the following gcc -E difference:
(- = buggy, + = works)

   unsigned char *__buffer;
 
 
   unsigned long int __allocated;
 
 
-  unsigned long int __attribute__((__used__));
+  unsigned long int __used;
 
 
   reg_syntax_t __syntax;

Sorry to jump to conclusions and blame you.  Thanks for trying to
reproduce and putting me on the right track!


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20130627015717.5965.qm...@science.horizon.com



Bug#713836: marked as done (regcomp(3) writes past end of regex_t; breaks kernel compile)

2013-06-26 Thread Debian Bug Tracking System
Your message dated 27 Jun 2013 02:31:23 -0400
with message-id <20130627063123.4937.qm...@science.horizon.com>
and subject line Bug#713836 was a system misconfiguration
has caused the Debian Bug report #713836,
regarding regcomp(3) writes past end of regex_t; breaks kernel compile
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
713836: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713836
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: libc6
Version: 2.17-6
Architecture: i386
Severity: important

This problem cropped up while compiling the kernel; it breaks
arch/x86/tools/relocs.c.  I've tracked it down and reduced
it to a small test case.

With the given arguments, regcomp() corrupts the byte past the end of
its supplied regex_t buffer.  This obviously can cause any manner of
undesired program behavior.

Note that this is 32-bit i386, not 64-bit.

Here's a simple test program:

#include 
#include 
#include 

regex_t array[2];

static bool
is_zero(void const *p, size_t len)
{
size_t i;
unsigned char const *pp = p;
bool rv = true;

for (i = 0; i < len; i++) {
if (pp[i]) {
printf("J'accuse!  buf[%zu] = %#x\n",
i, pp[i]);
rv = false;
}
}
return rv;
}

int
main(void)
{
if (is_zero(array+1, sizeof array[1]))
printf("array[1] confirmed all-zero\n");
regcomp(array+0, "^pa_", REG_EXTENDED|REG_NOSUB);
if (is_zero(array+1, sizeof array[1]))
printf("array[1] confirmed all-zero\n");
else
printf("Bug!  array[1] has been overwritten!\n");
return 0;
}

And here's what running it produces:
$ ./a.out
array[1] confirmed all-zero
J'accuse!  buf[0] = 0x18
Bug!  array[1] has been overwritten!
$ ldd ./a.out
linux-gate.so.1 (0xf7784000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75ea000)
/lib/ld-linux.so.2 (0xf7785000)

(The fact that the libc6-i686 libraries, which I have installed, are
not being used is due libc6-i686 postinst not handling multiarch; I'll
report that separately.)
--- End Message ---
--- Begin Message ---
Turns out it was a stale header in /usr/local/include that was causing
the compiler to think the structure was 4 bytes smaller than the C
library did.  Buffer overruns were inevitable.

I think the reason it happened to show up now was that the only affected
source was a Linux kernel helper script that was very stable and so dodn't
get recompiled for a long time even though the C library had changed.

But then I was hunting a kernel bug and did a "make clean" as a
precaution, and kaboom.--- End Message ---