mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
Update.
1999-08-09 Scott Bambrough <scottb@netwinder.org> * elf/elf.h: Added definition of ELFOSABI_ARM. * elf/dl-load.c (_dl_map_object_from_fd): Use VALID_ELF_HEADER, VALID_ELF_OSABI, VALID_ELF_ABIVERSION to decide whether an object's header and ABI values are acceptable. (VALID_ELF_HEADER): New macro; provide default definition. (VALID_ELF_OSABI): New macro; provide default definition. (VALID_ELF_ABIVERSION): New macro; provide default definition. * sysdeps/arm/dl-machine.h Define ARM specific versions of VALID_ELF_HEADER, VALID_ELF_OSABI, VALID_ELF_ABIVERSION. 1999-08-09 Andreas Schwab <schwab@suse.de> * inet/tst-ipnode.c (main): Don't compare integer with NULL. 1999-08-09 Thorsten Kukuk <kukuk@suse.de> * sunrpc/svc_run.c (svc_run): Free my_pollfd. 1999-08-09 Andreas Schwab <schwab@suse.de> * sunrpc/svc.c (svc_getreq_poll): Fix argument of xprt_unregister.
This commit is contained in:
parent
918736844a
commit
e79137b2fb
24
ChangeLog
24
ChangeLog
@ -1,3 +1,27 @@
|
|||||||
|
1999-08-09 Scott Bambrough <scottb@netwinder.org>
|
||||||
|
|
||||||
|
* elf/elf.h: Added definition of ELFOSABI_ARM.
|
||||||
|
* elf/dl-load.c (_dl_map_object_from_fd): Use VALID_ELF_HEADER,
|
||||||
|
VALID_ELF_OSABI, VALID_ELF_ABIVERSION to decide whether an
|
||||||
|
object's header and ABI values are acceptable.
|
||||||
|
(VALID_ELF_HEADER): New macro; provide default definition.
|
||||||
|
(VALID_ELF_OSABI): New macro; provide default definition.
|
||||||
|
(VALID_ELF_ABIVERSION): New macro; provide default definition.
|
||||||
|
* sysdeps/arm/dl-machine.h Define ARM specific versions of
|
||||||
|
VALID_ELF_HEADER, VALID_ELF_OSABI, VALID_ELF_ABIVERSION.
|
||||||
|
|
||||||
|
1999-08-09 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
* inet/tst-ipnode.c (main): Don't compare integer with NULL.
|
||||||
|
|
||||||
|
1999-08-09 Thorsten Kukuk <kukuk@suse.de>
|
||||||
|
|
||||||
|
* sunrpc/svc_run.c (svc_run): Free my_pollfd.
|
||||||
|
|
||||||
|
1999-08-09 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
* sunrpc/svc.c (svc_getreq_poll): Fix argument of xprt_unregister.
|
||||||
|
|
||||||
1999-08-08 Ulrich Drepper <drepper@cygnus.com>
|
1999-08-08 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* sysdeps/ieee754/ieee754.h: Handle platforms with special
|
* sysdeps/ieee754/ieee754.h: Handle platforms with special
|
||||||
|
@ -673,6 +673,11 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
|||||||
/* This is the expected ELF header. */
|
/* This is the expected ELF header. */
|
||||||
#define ELF32_CLASS ELFCLASS32
|
#define ELF32_CLASS ELFCLASS32
|
||||||
#define ELF64_CLASS ELFCLASS64
|
#define ELF64_CLASS ELFCLASS64
|
||||||
|
#ifndef VALID_ELF_HEADER
|
||||||
|
# define VALID_ELF_HEADER(hdr,exp,size) (memcmp (hdr, exp, size) == 0)
|
||||||
|
# define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV)
|
||||||
|
# define VALID_ELF_ABIVERSION(ver) (ver == 0)
|
||||||
|
#endif
|
||||||
static const unsigned char expected[EI_PAD] =
|
static const unsigned char expected[EI_PAD] =
|
||||||
{
|
{
|
||||||
[EI_MAG0] = ELFMAG0,
|
[EI_MAG0] = ELFMAG0,
|
||||||
@ -739,7 +744,8 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
|||||||
header = (void *) readbuf;
|
header = (void *) readbuf;
|
||||||
|
|
||||||
/* Check the header for basic validity. */
|
/* Check the header for basic validity. */
|
||||||
if (__builtin_expect (memcmp (header->e_ident, expected, EI_PAD), 0) != 0)
|
if (__builtin_expect (VALID_ELF_HEADER (header->e_ident, expected, EI_PAD),
|
||||||
|
0) != 0)
|
||||||
{
|
{
|
||||||
/* Something is wrong. */
|
/* Something is wrong. */
|
||||||
if (*(Elf32_Word *) &header->e_ident !=
|
if (*(Elf32_Word *) &header->e_ident !=
|
||||||
@ -764,10 +770,10 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
|||||||
LOSE (0, "ELF file version ident not " STRING(EV_CURRENT));
|
LOSE (0, "ELF file version ident not " STRING(EV_CURRENT));
|
||||||
/* XXX We should be able so set system specific versions which are
|
/* XXX We should be able so set system specific versions which are
|
||||||
allowed here. */
|
allowed here. */
|
||||||
if (header->e_ident[EI_OSABI] != ELFOSABI_SYSV)
|
if (!VALID_ELF_OSABI (header->e_ident[EI_OSABI]))
|
||||||
LOSE (0, "ELF file OS ABI not " STRING(ELFOSABI_SYSV));
|
LOSE (0, "ELF file OS ABI invalid.");
|
||||||
if (header->e_ident[EI_ABIVERSION] != 0)
|
if (!VALID_ELF_ABIVERSION (header->e_ident[EI_ABIVERSION]))
|
||||||
LOSE (0, "ELF file ABI version not 0");
|
LOSE (0, "ELF file ABI version invalid.");
|
||||||
LOSE (0, "internal error");
|
LOSE (0, "internal error");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,6 +135,7 @@ typedef struct
|
|||||||
#define EI_OSABI 7 /* OS ABI identification */
|
#define EI_OSABI 7 /* OS ABI identification */
|
||||||
#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
|
#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
|
||||||
#define ELFOSABI_HPUX 1 /* HP-UX */
|
#define ELFOSABI_HPUX 1 /* HP-UX */
|
||||||
|
#define ELFOSABI_ARM 97 /* ARM */
|
||||||
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
|
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
|
||||||
|
|
||||||
#define EI_ABIVERSION 8 /* ABI version */
|
#define EI_ABIVERSION 8 /* ABI version */
|
||||||
|
@ -21,5 +21,5 @@ main (void)
|
|||||||
++errors;
|
++errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
return errors != NULL;
|
return errors != 0;
|
||||||
}
|
}
|
||||||
|
@ -367,7 +367,7 @@ svc_getreq_poll (struct pollfd *pfdp, int pollretval)
|
|||||||
++fds_found;
|
++fds_found;
|
||||||
|
|
||||||
if (p->revents & POLLNVAL)
|
if (p->revents & POLLNVAL)
|
||||||
xprt_unregister (p->fd);
|
xprt_unregister (xports[p->fd]);
|
||||||
else
|
else
|
||||||
svc_getreq_common (p->fd);
|
svc_getreq_common (p->fd);
|
||||||
}
|
}
|
||||||
|
@ -70,14 +70,17 @@ svc_run (void)
|
|||||||
switch (i = __poll (my_pollfd, svc_max_pollfd, -1))
|
switch (i = __poll (my_pollfd, svc_max_pollfd, -1))
|
||||||
{
|
{
|
||||||
case -1:
|
case -1:
|
||||||
|
free (my_pollfd);
|
||||||
if (errno == EINTR)
|
if (errno == EINTR)
|
||||||
continue;
|
continue;
|
||||||
perror (_("svc_run: - poll failed"));
|
perror (_("svc_run: - poll failed"));
|
||||||
return;
|
return;
|
||||||
case 0:
|
case 0:
|
||||||
|
free (my_pollfd);
|
||||||
continue;
|
continue;
|
||||||
default:
|
default:
|
||||||
svc_getreq_poll (my_pollfd, i);
|
svc_getreq_poll (my_pollfd, i);
|
||||||
|
free (my_pollfd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,14 @@
|
|||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
|
||||||
|
#define VALID_ELF_ABIVERSION(ver) (ver == 0)
|
||||||
|
#define VALID_ELF_OSABI(osabi) \
|
||||||
|
(osabi == ELFOSABI_SYSV || osabi == ELFOSABI_ARM)
|
||||||
|
#define VALID_ELF_HEADER(hdr,exp,size) \
|
||||||
|
memcmp (hdr,exp,size-2) == 0 \
|
||||||
|
&& VALID_ELF_OSABI (hdr[EI_OSABI]) \
|
||||||
|
&& VALID_ELF_ABIVERSION (hdr[EI_ABIVERSION])
|
||||||
|
|
||||||
/* Return nonzero iff E_MACHINE is compatible with the running host. */
|
/* Return nonzero iff E_MACHINE is compatible with the running host. */
|
||||||
static inline int __attribute__ ((unused))
|
static inline int __attribute__ ((unused))
|
||||||
elf_machine_matches_host (Elf32_Half e_machine)
|
elf_machine_matches_host (Elf32_Half e_machine)
|
||||||
|
Loading…
Reference in New Issue
Block a user