Fix m68k fchownat for empty file names.
authorJoseph Myers <joseph@codesourcery.com>
Fri, 30 Oct 2009 20:52:15 +0000 (20:52 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 30 Oct 2009 20:52:15 +0000 (20:52 +0000)
[BZ #10609]
* sysdeps/unix/sysv/linux/m68k/fchownat.c (fchownat): Fix handling
of empty parameters for file names.

ChangeLog.m68k
sysdeps/unix/sysv/linux/m68k/fchownat.c

index 41ede01..59be68c 100644 (file)
@@ -1,3 +1,9 @@
+2009-10-30  Joseph Myers  <joseph@codesourcery.com>
+
+       [BZ #10609]
+       * sysdeps/unix/sysv/linux/m68k/fchownat.c (fchownat): Fix handling
+       of empty parameters for file names.
+
 2009-09-06  Andreas Schwab  <schwab@linux-m68k.org>
 
        * sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c: New file.
index 6cc0932..cbf5380 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2006, 2009 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
@@ -51,6 +51,12 @@ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
   if (fd != AT_FDCWD && file[0] != '/')
     {
       size_t filelen = strlen (file);
+      if (__builtin_expect (filelen == 0, 0))
+       {
+         __set_errno (ENOENT);
+         return -1;
+       }
+
       static const char procfd[] = "/proc/self/fd/%d/%s";
       /* Buffer for the path name we are going to use.  It consists of
         - the string /proc/self/fd/