diff options
author | Roland McGrath <roland@redhat.com> | 2005-09-11 08:56:48 +0000 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 2005-09-11 08:56:48 +0000 |
commit | a17e26fba868e58359f08aabe61378c54c0532a1 (patch) | |
tree | 1885fc8ddf2df228e6f5ef232795b4788946743a | |
parent | 843f6f57d7c89a49479ee4567aedd0d5069f102e (diff) | |
download | android_external_elfutils-a17e26fba868e58359f08aabe61378c54c0532a1.tar.gz android_external_elfutils-a17e26fba868e58359f08aabe61378c54c0532a1.tar.bz2 android_external_elfutils-a17e26fba868e58359f08aabe61378c54c0532a1.zip |
disapproval of revision e5ca7b66d5a873eb093b7c398121b12f56a03b15
-rw-r--r-- | libelf/ChangeLog | 5 | ||||
-rw-r--r-- | libelf/elf_update.c | 21 |
2 files changed, 0 insertions, 26 deletions
diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 35667cee..bd710aee 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,8 +1,3 @@ -2005-09-09 Roland McGrath <roland@redhat.com> - - * elf_update.c (write_file): Stat the file and fchmod it after update - if its mode had S_ISUID or S_ISGID bits set. - 2005-08-28 Ulrich Drepper <drepper@redhat.com> * elf32_getphdr.c: Include <system.h>. Use pread_retry instead of diff --git a/libelf/elf_update.c b/libelf/elf_update.c index f380e2b9..5d6c6b7a 100644 --- a/libelf/elf_update.c +++ b/libelf/elf_update.c @@ -22,7 +22,6 @@ #include <libelf.h> #include <unistd.h> #include <sys/mman.h> -#include <sys/stat.h> #include "libelfP.h" @@ -32,14 +31,6 @@ write_file (Elf *elf, off_t size, int change_bo, size_t shnum) { int class = elf->class; - /* Check the mode bits now, before modification might change them. */ - struct stat st; - if (unlikely (fstat (elf->fildes, &st) != 0)) - { - __libelf_seterrno (ELF_E_WRITE_ERROR); - return -1; - } - /* Adjust the size in any case. We do this even if we use `write'. We cannot do this if this file is in an archive. We also don't do it *now* if we are shortening the file since this would @@ -96,18 +87,6 @@ write_file (Elf *elf, off_t size, int change_bo, size_t shnum) size = -1; } - /* POSIX says that ftruncate and write may clear the S_ISUID and S_ISGID - mode bits. So make sure we restore them afterwards if they were set. - This is not atomic if someone else chmod's the file while we operate. */ - if (size != -1 - && unlikely (st.st_mode & (S_ISUID | S_ISGID)) - /* fchmod ignores the bits we cannot change. */ - && unlikely (fchmod (elf->fildes, st.st_mode) != 0)) - { - __libelf_seterrno (ELF_E_WRITE_ERROR); - size = -1; - } - if (size != -1 && elf->parent == NULL) elf->maximum_size = size; |