mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
Old (a.out) rtld attempts to mmap zero-length region, e.g. when bss
of the linked object is zero-length. More old code assumes that mmap of zero length returns success. For a.out and pre-8 ELF binaries, allow the mmap of zero length. Reported by: tegge Reviewed by: tegge, alc, jhb MFC after: 3 days
This commit is contained in:
parent
4b6492f5ab
commit
497a82382b
1 changed files with 3 additions and 1 deletions
|
|
@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$");
|
|||
#include <sys/mount.h>
|
||||
#include <sys/conf.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/sysent.h>
|
||||
#include <sys/vmmeter.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
|
|
@ -229,7 +230,8 @@ mmap(td, uap)
|
|||
|
||||
fp = NULL;
|
||||
/* make sure mapping fits into numeric range etc */
|
||||
if (uap->len == 0 ||
|
||||
if ((uap->len == 0 && !SV_CURPROC_FLAG(SV_AOUT) &&
|
||||
curproc->p_osrel >= 800104) ||
|
||||
((flags & MAP_ANON) && uap->fd != -1))
|
||||
return (EINVAL);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue