mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-25 19:14:04 +00:00
Bug-fix in size calculation
Fixes a bug in how PARASITE_MAX_GROUPS was calculated, and adds a compiler check to assert that parasite_dump_creds doesn't exceed the page size. Signed-off-by: Sophie Blee-Goldman <ableegoldman@google.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
ded04267f8
commit
3faaed2f64
2 changed files with 8 additions and 1 deletions
|
|
@ -162,7 +162,12 @@ struct parasite_dump_misc {
|
|||
int dumpable;
|
||||
};
|
||||
|
||||
#define PARASITE_MAX_GROUPS (PAGE_SIZE / sizeof(unsigned int) - 2 * sizeof(unsigned))
|
||||
/*
|
||||
* Calculate how long we can make the groups array in parasite_dump_creds
|
||||
* and still fit the struct in one page
|
||||
*/
|
||||
#define PARASITE_MAX_GROUPS \
|
||||
((PAGE_SIZE - 2 * sizeof(unsigned int)) / sizeof(unsigned int))
|
||||
|
||||
struct parasite_dump_creds {
|
||||
unsigned int secbits;
|
||||
|
|
|
|||
|
|
@ -735,6 +735,8 @@ int parasite_dump_creds(struct parasite_ctl *ctl, CredsEntry *ce)
|
|||
{
|
||||
struct parasite_dump_creds *pc;
|
||||
|
||||
BUILD_BUG_ON(sizeof(*pc) > PAGE_SIZE);
|
||||
|
||||
pc = parasite_args(ctl, struct parasite_dump_creds);
|
||||
if (parasite_execute_daemon(PARASITE_CMD_DUMP_CREDS, ctl) < 0)
|
||||
return -1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue