summaryrefslogtreecommitdiffstats
path: root/libelf/elf_readall.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-08-29 16:27:10 +0000
committerUlrich Drepper <drepper@redhat.com>2005-08-29 16:27:10 +0000
commitfbe998a0b1be1f006bc72e5138fb38c188cc0433 (patch)
treebc00ddfec68454b8987056fbc1f1ace2da2597fa /libelf/elf_readall.c
parentb0bc2788cfa2012bfbcc68cac74cd39e3f5a8085 (diff)
merge of 333c187506c852455e9f7be44fa9adc360416217
and 79955b942e3f0ddc71117feea5754df61edcc42a
Diffstat (limited to 'libelf/elf_readall.c')
-rw-r--r--libelf/elf_readall.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libelf/elf_readall.c b/libelf/elf_readall.c
index d36da270..efe44bf8 100644
--- a/libelf/elf_readall.c
+++ b/libelf/elf_readall.c
@@ -1,5 +1,5 @@
/* Read all of the file associated with the descriptor.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Red Hat, Inc.
Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
This program is free software; you can redistribute it and/or modify
@@ -19,8 +19,10 @@
# include <config.h>
#endif
+#include <errno.h>
#include <unistd.h>
+#include <system.h>
#include "libelfP.h"
#include "common.h"
@@ -78,8 +80,10 @@ __libelf_readall (elf)
if (mem != NULL)
{
/* Read the file content. */
- if ((size_t) pread (elf->fildes, mem, elf->maximum_size,
- elf->start_offset) != elf->maximum_size)
+ if (unlikely ((size_t) pread_retry (elf->fildes, mem,
+ elf->maximum_size,
+ elf->start_offset)
+ != elf->maximum_size))
{
/* Something went wrong. */
__libelf_seterrno (ELF_E_READ_ERROR);