about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-01-28 22:47:31 +0000
committerRoland McGrath <roland@gnu.org>1996-01-28 22:47:31 +0000
commitdc825f85f4795fc45f67eb27708d9adcc72c9b40 (patch)
tree31123aab362868b7b9fa429419419ee22d70cca8 /sysdeps
parenteb8c0f2de5fe3484a8c9922573c46e3789028bb0 (diff)
downloadglibc-dc825f85f4795fc45f67eb27708d9adcc72c9b40.tar.gz
glibc-dc825f85f4795fc45f67eb27708d9adcc72c9b40.tar.xz
glibc-dc825f85f4795fc45f67eb27708d9adcc72c9b40.zip
Sun Jan 28 17:25:38 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> cvs/libc-960129
	* setjmp/setjmp.h (jmp_buf): Give a tag in the struct defn, to
	make C++ happy.
	* alpha/jmp_buf.h: Likewise.
	* m68k/jmp_buf.h: Likewise.
	* mips/jmp_buf.h: Likewise.
	* sparc/jmp_buf.h: Likewise.
	* vax/jmp_buf.h: Likewise.
Sun Jan 28 17:25:38 1996  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* setjmp/setjmp.h (jmp_buf): Give a tag in the struct defn, to
	make C++ happy.
	* alpha/jmp_buf.h: Likewise.
	* m68k/jmp_buf.h: Likewise.
	* mips/jmp_buf.h: Likewise.
	* sparc/jmp_buf.h: Likewise.
	* vax/jmp_buf.h: Likewise.

	* sysdeps/generic/memmem.c: Fix return value in case where
	NEEDLE_LEN==0.

	* hurd/hurdlookup.c (__file_name_lookup_under,
	__file_name_lookup): Restrict mode with umask.
	* sysdeps/mach/hurd/xmknod.c: Restrict mode with umask.
	* sysdeps/mach/hurd/mkdir.c: Restrict mode with umask.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/memmem.c6
-rw-r--r--sysdeps/mach/hurd/mkdir.c4
-rw-r--r--sysdeps/mach/hurd/xmknod.c2
3 files changed, 7 insertions, 5 deletions
diff --git a/sysdeps/generic/memmem.c b/sysdeps/generic/memmem.c
index 79b4544db5..099897ab80 100644
--- a/sysdeps/generic/memmem.c
+++ b/sysdeps/generic/memmem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994, 1996 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
@@ -33,7 +33,9 @@ DEFUN(memmem, (haystack, haystack_len,
     = (CONST char *) haystack + haystack_len - needle_len;
 
   if (needle_len == 0)
-    return (PTR) &((CONST char *) haystack)[needle_len - 1];
+    /* The first occurrence of the empty string is deemed to occur at
+       the end of the string.  */
+    return (PTR) &((CONST char *) haystack)[haystack_len - 1];
 
   for (begin = (CONST char *) haystack; begin <= last_possible; ++begin)
     if (begin[0] == ((CONST char *) needle)[0] &&
diff --git a/sysdeps/mach/hurd/mkdir.c b/sysdeps/mach/hurd/mkdir.c
index d477815994..560f5e0a3d 100644
--- a/sysdeps/mach/hurd/mkdir.c
+++ b/sysdeps/mach/hurd/mkdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1993, 1994, 1995, 1996 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
@@ -31,7 +31,7 @@ DEFUN(__mkdir, (file_name, mode), CONST char *file_name AND mode_t mode)
   file_t parent = __file_name_split (file_name, (char **) &name);
   if (parent == MACH_PORT_NULL)
     return -1;
-  err = __dir_mkdir (parent, name, mode);
+  err = __dir_mkdir (parent, name, mode & ~_hurd_umask);
   __mach_port_deallocate (__mach_task_self (), parent);
   if (err)
     return __hurd_fail (err);
diff --git a/sysdeps/mach/hurd/xmknod.c b/sysdeps/mach/hurd/xmknod.c
index 68fb2249b2..b2386d80ee 100644
--- a/sysdeps/mach/hurd/xmknod.c
+++ b/sysdeps/mach/hurd/xmknod.c
@@ -90,7 +90,7 @@ __xmknod (int vers, const char *file_name, mode_t mode, dev_t *dev)
     return -1;
 
   /* Create a new, unlinked node in the target directory.  */
-  err = __dir_mkfile (dir, O_WRITE, mode & ~S_IFMT & _hurd_umask, &node);
+  err = __dir_mkfile (dir, O_WRITE, (mode & ~S_IFMT) & ~_hurd_umask, &node);
 
   if (! err)
     /* Set the node's translator to make it a device.  */