Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce ELF binfmt loader #79

Open
wants to merge 2 commits into
base: staging
Choose a base branch
from

Commits on Jul 29, 2024

  1. Add command-line parameter parsing with limit checks.

    POSIX defines the minimum total size of argv + envp to ARG_MAX,
    and leaves the inclusion of NULL terminators, pointers and / or
    alignment bytes as implementation defined. The policy we implement is:
    
    - Permit the total length to exceed ARG_MAX as long as it's not
      greater than 1/4 of the stack size. This is essentially the same
      policy as linux (see execve(2)), with the difference that we
      don't apply the MAX_ARG_STRLEN floor of 32 pages.
    
    - Exclude auxv, NULL, andlignment bytes from the checked size, as
      these are of fixed size and occupy an insignificant portion of
      the stack.
    
    Signed-off-by: Michalis Pappas <michalis@unikraft.io>
    michpappas committed Jul 29, 2024
    Configuration menu
    Copy the full SHA
    be460ab View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2024

  1. Add ELF binfmt loader

    Add binfmt loader for ELF. This is the default loader used on
    execve().
    
    Signed-off-by: Michalis Pappas <michalis@unikraft.io>
    michpappas committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    9ad500d View commit details
    Browse the repository at this point in the history