patches/glibc/ports-2.13/660-debug-readlink_chk-readklinkat_chk.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Oct 16 20:57:44 2012 +0200 (2012-10-16)
changeset 3079 37831a33e07e
permissions -rw-r--r--
kernel/linux: fix using custom location

Currently, extract and patch are skipped as thus:
- using a custom directory of pre-installed headers
- a correctly named directory already exists

Otherwise, extract and patch are done.

The current second condition is wrong, because it allows the following
sequence to happen:
- a non-custom kernel is used
- a previous build only partially extracted the non-custom sources
- that p[revious build broke during extraction (eg. incomplete tarball...)
- a subsequent build will find a properly named directory, and will
thus skip extract and patch, which is wrong

Fix that by following the conditions in this table:

Type | Extract | Patch
----------------------+---------+-------
Pre-installed headers | N | N
custom directory | N | N
custom tarball | Y | N
mainstream tarball | Y | Y

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: David Holsgrove <david.holsgrove@xilinx.com>
     1 diff -dur glibc-cvs-2.9.orig/debug/readlink_chk.c glibc-cvs-2.9/debug/readlink_chk.c
     2 --- glibc-cvs-2.9.orig/debug/readlink_chk.c	2005-03-01 01:41:15.000000000 +0100
     3 +++ glibc-cvs-2.9/debug/readlink_chk.c	2009-06-01 10:59:37.000000000 +0200
     4 @@ -25,7 +25,7 @@
     5  
     6  
     7  ssize_t
     8 -__readlink_chk (const char *path, void *buf, size_t len, size_t buflen)
     9 +__readlink_chk (const char *path, char *buf, size_t len, size_t buflen)
    10  {
    11    if (len > buflen)
    12      __chk_fail ();
    13 diff -dur glibc-cvs-2.9.orig/debug/readlinkat_chk.c glibc-cvs-2.9/debug/readlinkat_chk.c
    14 --- glibc-cvs-2.9.orig/debug/readlinkat_chk.c	2006-04-24 18:56:12.000000000 +0200
    15 +++ glibc-cvs-2.9/debug/readlinkat_chk.c	2009-06-01 11:07:26.000000000 +0200
    16 @@ -21,7 +21,7 @@
    17  
    18  
    19  ssize_t
    20 -__readlinkat_chk (int fd, const char *path, void *buf, size_t len,
    21 +__readlinkat_chk (int fd, const char *path, char *buf, size_t len,
    22  		  size_t buflen)
    23  {
    24    if (len > buflen)