Author: pb Date: 2005-12-25 20:26:01 +0000 (Sun, 25 Dec 2005) New Revision: 1069
Added: glibc-package/trunk/debian/patches/strfry-segv.dpatch Log: actually add strfry patch Added: glibc-package/trunk/debian/patches/strfry-segv.dpatch =================================================================== --- glibc-package/trunk/debian/patches/strfry-segv.dpatch 2005-12-25 20:25:30 UTC (rev 1068) +++ glibc-package/trunk/debian/patches/strfry-segv.dpatch 2005-12-25 20:26:01 UTC (rev 1069) @@ -0,0 +1,124 @@ +#! /bin/sh -e + +# DP: Fix segfault in strfry() + +if [ $# -ne 2 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -d "$2" -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +2005-04-12 Ulrich Drepper <[EMAIL PROTECTED]> + + [BZ #1090] + * stdlib/random_r.c (__initstate_r): Don't use non-existing state. + * string/tst-strfry.c: New file. + * string/Makefile (tests): Add tst-strfry. + +Index: stdlib/random_r.c +=================================================================== +RCS file: /cvs/glibc/libc/stdlib/random_r.c,v +retrieving revision 1.19 +retrieving revision 1.20 +diff -u -r1.19 -r1.20 +--- stdlib/random_r.c 10 Feb 2005 09:40:11 -0000 1.19 ++++ stdlib/random_r.c 12 Apr 2005 15:21:29 -0000 1.20 +@@ -236,23 +236,20 @@ + size_t n; + struct random_data *buf; + { +- int type; +- int degree; +- int separation; +- int32_t *state; +- int old_type; +- int32_t *old_state; +- + if (buf == NULL) + goto fail; + +- old_type = buf->rand_type; +- old_state = buf->state; +- if (old_type == TYPE_0) +- old_state[-1] = TYPE_0; +- else +- old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type; ++ int32_t *old_state = buf->state; ++ if (old_state != NULL) ++ { ++ int old_type = buf->rand_type; ++ if (old_type == TYPE_0) ++ old_state[-1] = TYPE_0; ++ else ++ old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type; ++ } + ++ int type; + if (n >= BREAK_3) + type = n < BREAK_4 ? TYPE_3 : TYPE_4; + else if (n < BREAK_1) +@@ -267,13 +264,13 @@ + else + type = n < BREAK_2 ? TYPE_1 : TYPE_2; + +- degree = random_poly_info.degrees[type]; +- separation = random_poly_info.seps[type]; ++ int degree = random_poly_info.degrees[type]; ++ int separation = random_poly_info.seps[type]; + + buf->rand_type = type; + buf->rand_sep = separation; + buf->rand_deg = degree; +- state = &((int32_t *) arg_state)[1]; /* First location. */ ++ int32_t *state = &((int32_t *) arg_state)[1]; /* First location. */ + /* Must set END_PTR before srandom. */ + buf->end_ptr = &state[degree]; + +--- /dev/null 2005-04-18 14:50:08.963492000 +0100 ++++ string/tst-strfry.c 2005-04-12 16:27:40.000000000 +0100 +@@ -0,0 +1,15 @@ ++#include <stdio.h> ++#include <string.h> ++ ++static int ++do_test (void) ++{ ++ char str[] = "this is a test"; ++ ++ strfry (str); ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: string/Makefile +=================================================================== +RCS file: /cvs/glibc/libc/string/Makefile,v +retrieving revision 1.65 +retrieving revision 1.66 +diff -u -r1.65 -r1.66 +--- string/Makefile 18 Oct 2004 04:17:12 -0000 1.65 ++++ string/Makefile 12 Apr 2005 15:27:59 -0000 1.66 +@@ -1,4 +1,4 @@ +-# Copyright (C) 1991-1999,2000,2001,2002 Free Software Foundation, Inc. ++# Copyright (C) 1991-1999,2000,2001,2002, 2005 Free Software Foundation, Inc. + # This file is part of the GNU C Library. + + # The GNU C Library is free software; you can redistribute it and/or +@@ -52,7 +52,7 @@ + tests := tester inl-tester noinl-tester testcopy test-ffs \ + tst-strlen stratcliff tst-svc tst-inlcall \ + bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ +- tst-strtok tst-strxfrm bug-strcoll1 \ ++ tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ + $(addprefix test-,$(strop-tests)) + distribute := memcopy.h pagecopy.h tst-svc.expect test-string.h + Property changes on: glibc-package/trunk/debian/patches/strfry-segv.dpatch ___________________________________________________________________ Name: svn:executable + * -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]