Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: "José Pekkarinen" <jose.pekkarinen@unikie.com>
Cc: buildroot <buildroot@buildroot.org>
Subject: Re: [Buildroot] [PATCH 2/7] package/minijail: new package
Date: Wed, 12 Jan 2022 15:51:03 +0100	[thread overview]
Message-ID: <20220112155103.7e6c11c0@windsurf> (raw)
In-Reply-To: <CAJPV9MpzSPFyj-AMO+_iCNZ-PVp+DcKaH1yrMHvO2TawoUPa1g@mail.gmail.com>

Hello,

On Wed, 12 Jan 2022 16:15:16 +0200
José Pekkarinen <jose.pekkarinen@unikie.com> wrote:

> > What are you "fixing"? You're replacing a prlimit() call by by
> > setrlimit(), but why? What problem does it solve? Why is it correct to
> > do that?  
> 
>     The problem is shown from as this:
> 
> /home/pekkari/br-test-pkg/bootlin-armv5-uclibc/build/minijail-linux-v17/libminijail.c:
> In function ‘set_rlimits_or_die’:
> /home/pekkari/br-test-pkg/bootlin-armv5-uclibc/build/minijail-linux-v17/libminijail.c:1911:7:
> error: implicit declaration of function ‘prlimit’; did you mean
> ‘setrlimit’? [-Werror=implicit-function-declaration]
> 1911 |   if (prlimit(j->initpid, j->rlimits[i].type, &limit, NULL))
>      |       ^~~~~~~
>      |       setrlimit
> 
>     So I followed the suggestion, no more, no less.

You shouldn't blindly follow compiler suggestions :-)

prlimit() exists in musl. Was <sys/resource.h> included, as suggested
by the prlimit() man page ?


> > > +-static_assert(FD_SETSIZE >= MAX_PRESERVED_FDS * 2 - 1,
> > > +-          "If true, ensure_no_fd_conflict will always find an unused fd.");  
> >
> > You're not fixing the static_assert() here but simply dropping it. Why?
> > When does it fail? What is the problem with it? Why is it safe to drop
> > it?  
> 
>     It fails like this:
> 
> /home/pekkari/br-test-pkg/bootlin-armv5-uclibc/build/minijail-linux-v17/libminijail.c:2623:15:
> error: expected declaration specifiers or ‘...’ before numeric
> constant
> 2623 | static_assert(FD_SETSIZE >= MAX_PRESERVED_FDS * 2 - 1,
>      |               ^~~~~~~~~~
> /home/pekkari/br-test-pkg/bootlin-armv5-uclibc/build/minijail-linux-v17/libminijail.c:2624:8:
> error: expected declaration specifiers or ‘...’ before string constant
> 2624 |        "If true, ensure_no_fd_conflict will always find an unused fd.");
>      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
>     So my understanding is that this platform may
> define static_assert in a different manner, and I
> find no traces of the purpose of that isolated assert,
> so the easier way to get around this was removing it.

Well, the assert is there for a reason, so we need to understand what
it is verifying, and whether it is safe to drop it.

After checking, FD_SETSIZE seems to be defined to 1024 by glibc, musl
and uclibc-ng, and MAX_PRESERVED_FDS is defined as 128 by the minijail
code.

Can you try using _Static_assert() instead, which is part of the C11
standard?

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2022-01-12 14:51 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-10 14:12 [Buildroot] [PATCH 1/7] package/opensc: new package José Pekkarinen
2021-12-10 14:12 ` [Buildroot] [PATCH 2/7] package/minijail: " José Pekkarinen
2021-12-10 14:48   ` Giulio Benetti
2021-12-10 18:15     ` Arnout Vandecappelle
2021-12-10 20:26       ` Giulio Benetti
2021-12-11  8:30         ` Arnout Vandecappelle
2021-12-11 11:53           ` Giulio Benetti
2021-12-10 19:57   ` Yann E. MORIN
2022-01-05 20:41   ` Thomas Petazzoni
2022-01-12 14:15     ` José Pekkarinen
2022-01-12 14:51       ` Thomas Petazzoni [this message]
2022-01-12 15:08         ` José Pekkarinen
2022-01-12 16:00           ` Thomas Petazzoni
2022-01-13  5:12             ` José Pekkarinen
2021-12-10 14:12 ` [Buildroot] [PATCH 3/7] package/bmx7: " José Pekkarinen
2021-12-10 14:52   ` Giulio Benetti
2021-12-10 20:07   ` Yann E. MORIN
2022-01-05 22:23   ` Thomas Petazzoni
2022-01-10  5:36     ` José Pekkarinen
2021-12-10 14:12 ` [Buildroot] [PATCH 4/7] package/alfred: " José Pekkarinen
2021-12-10 14:54   ` Giulio Benetti
2022-01-05 22:43   ` Thomas Petazzoni
2021-12-10 14:12 ` [Buildroot] [PATCH 5/7] package/aexpect: " José Pekkarinen
2021-12-10 14:56   ` Giulio Benetti
2021-12-10 20:11   ` Yann E. MORIN
2021-12-11  8:43     ` Arnout Vandecappelle
2021-12-11  9:17       ` Yann E. MORIN
2022-01-06  8:40   ` Thomas Petazzoni
2021-12-10 14:12 ` [Buildroot] [PATCH 6/7] package/avocado: " José Pekkarinen
2021-12-10 14:57   ` Giulio Benetti
2022-07-26  8:13   ` Thomas Petazzoni via buildroot
2021-12-10 14:12 ` [Buildroot] [PATCH 7/7] package/avocado-vt: " José Pekkarinen
2021-12-10 15:00   ` Giulio Benetti
2022-07-26  8:21   ` Thomas Petazzoni via buildroot
2022-07-28  6:07     ` José Pekkarinen via buildroot
2021-12-10 14:32 ` [Buildroot] [PATCH 1/7] package/opensc: " Giulio Benetti
2021-12-10 17:34   ` Yann E. MORIN
2021-12-10 14:49 ` Giulio Benetti
2021-12-10 17:06   ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220112155103.7e6c11c0@windsurf \
    --to=thomas.petazzoni@bootlin.com \
    --cc=buildroot@buildroot.org \
    --cc=jose.pekkarinen@unikie.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox