Package: sysvinit Version: 2.86.ds1-65 Severity: normal Hello,
init sets c_iflag from scratch. This however clears the IUTF8 flag that the kernel sets according to the vt.default_utf8 kernel option, resulting to odd behavior of backspace applied to non-ascii characters. Just like c_cflag flags, init should not clear it, see attached patch. Samuel -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.31 (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages sysvinit depends on: ii file-rc 0.8.11 Alternative boot mechanism using a ii initscripts 2.86.ds1-65 scripts for initializing and shutt ii libc6 2.9-25 GNU C Library: Shared libraries ii libselinux1 2.0.85-4 SELinux runtime shared libraries ii libsepol1 2.0.38-2 SELinux library for manipulating b ii sysvinit-utils 2.86.ds1-65 System-V-like utilities sysvinit recommends no packages. sysvinit suggests no packages. -- no debconf information -- Samuel Thibault <samuel.thiba...@fnac.net> <s> je la connaissais pas celle la : "make: Entering an unknown directory" -+- #ens-mim -+-
diff --git a/sysdeps/mach/hurd/brk.c b/sysdeps/mach/hurd/brk.c index 931b260..4a135d3 100644 --- a/sysdeps/mach/hurd/brk.c +++ b/sysdeps/mach/hurd/brk.c @@ -64,7 +64,7 @@ weak_alias (__brk, brk) int _hurd_set_brk (vm_address_t addr) { - error_t err; + error_t err = 0; vm_address_t pagend = round_page (addr); vm_address_t pagebrk = round_page (_hurd_brk); long int rlimit; @@ -101,8 +101,22 @@ _hurd_set_brk (vm_address_t addr) if (pagend > _hurd_data_end) { + vm_address_t alloc_start = _hurd_data_end; + /* We didn't allocate enough space! Hopefully we can get some more! */ - err = __vm_allocate (__mach_task_self (), &pagebrk, pagend - pagebrk, 0); + + if (_hurd_data_end > pagebrk) + /* First finish allocation */ + err = __vm_protect (__mach_task_self (), pagebrk, + alloc_start - pagebrk, 0, + VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE); + if (! err) + _hurd_brk = alloc_start; + + if (! err) + err = __vm_allocate (__mach_task_self (), &alloc_start, + pagend - alloc_start, 0); + if (! err) _hurd_data_end = pagend; }