if (p == NULL) {
return false;
}
- TAILQ_INSERT_TAIL(&nsjconf->uids, p, pointers);
+ if (njc->uidmap[i]->use_newidmap) {
+ TAILQ_INSERT_TAIL(&nsjconf->newuidmap, p, pointers);
+ } else {
+ TAILQ_INSERT_TAIL(&nsjconf->uids, p, pointers);
+ }
}
for (size_t i = 0; i < njc->n_gidmap; i++) {
struct idmap_t *p =
if (p == NULL) {
return false;
}
- TAILQ_INSERT_TAIL(&nsjconf->gids, p, pointers);
- }
- for (size_t i = 0; i < njc->n_newuidmap; i++) {
- struct idmap_t *p =
- userParseId(njc->newuidmap[i]->inside_id, njc->newuidmap[i]->outside_id,
- njc->newuidmap[i]->count, false /* is_gid */ );
- if (p == NULL) {
- return false;
- }
- TAILQ_INSERT_TAIL(&nsjconf->newuidmap, p, pointers);
- }
- for (size_t i = 0; i < njc->n_newgidmap; i++) {
- struct idmap_t *p =
- userParseId(njc->newgidmap[i]->inside_id, njc->newgidmap[i]->outside_id,
- njc->newgidmap[i]->count, true /* is_gid */ );
- if (p == NULL) {
- return false;
+ if (njc->gidmap[i]->use_newidmap) {
+ TAILQ_INSERT_TAIL(&nsjconf->newgidmap, p, pointers);
+ } else {
+ TAILQ_INSERT_TAIL(&nsjconf->gids, p, pointers);
}
- TAILQ_INSERT_TAIL(&nsjconf->newgidmap, p, pointers);
}
return true;
char nsjail__id_map__inside_id__default_value[] = "";
char nsjail__id_map__outside_id__default_value[] = "";
static const uint32_t nsjail__id_map__count__default_value = 1u;
-static const ProtobufCFieldDescriptor nsjail__id_map__field_descriptors[3] = {
+static const protobuf_c_boolean nsjail__id_map__use_newidmap__default_value = 0;
+static const ProtobufCFieldDescriptor nsjail__id_map__field_descriptors[4] = {
{
"inside_id",
1,
0, /* flags */
0, NULL, NULL /* reserved1,reserved2, etc */
},
+ {
+ "use_newidmap",
+ 4,
+ PROTOBUF_C_LABEL_REQUIRED,
+ PROTOBUF_C_TYPE_BOOL,
+ 0, /* quantifier_offset */
+ offsetof(Nsjail__IdMap, use_newidmap),
+ NULL,
+ &nsjail__id_map__use_newidmap__default_value,
+ 0, /* flags */
+ 0, NULL, NULL /* reserved1,reserved2, etc */
+ },
};
static const unsigned nsjail__id_map__field_indices_by_name[] = {
2, /* field[2] = count */
0, /* field[0] = inside_id */
1, /* field[1] = outside_id */
+ 3, /* field[3] = use_newidmap */
};
static const ProtobufCIntRange nsjail__id_map__number_ranges[1 + 1] = {
{1, 0},
- {0, 3}
+ {0, 4}
};
const ProtobufCMessageDescriptor nsjail__id_map__descriptor = {
"Nsjail__IdMap",
"nsjail",
sizeof(Nsjail__IdMap),
- 3,
+ 4,
nsjail__id_map__field_descriptors,
nsjail__id_map__field_indices_by_name,
1, nsjail__id_map__number_ranges,
static const protobuf_c_boolean nsjail__ns_jail_config__clone_newipc__default_value = 1;
static const protobuf_c_boolean nsjail__ns_jail_config__clone_newuts__default_value = 1;
static const protobuf_c_boolean nsjail__ns_jail_config__clone_newcgroup__default_value = 0;
-static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[41] = {
+static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[39] = {
{
"mode",
1,
0, /* flags */
0, NULL, NULL /* reserved1,reserved2, etc */
},
- {
- "newuidmap",
- 42,
- PROTOBUF_C_LABEL_REPEATED,
- PROTOBUF_C_TYPE_MESSAGE,
- offsetof(Nsjail__NsJailConfig, n_newuidmap),
- offsetof(Nsjail__NsJailConfig, newuidmap),
- &nsjail__id_map__descriptor,
- NULL,
- 0, /* flags */
- 0, NULL, NULL /* reserved1,reserved2, etc */
- },
- {
- "newgidmap",
- 43,
- PROTOBUF_C_LABEL_REPEATED,
- PROTOBUF_C_TYPE_MESSAGE,
- offsetof(Nsjail__NsJailConfig, n_newgidmap),
- offsetof(Nsjail__NsJailConfig, newgidmap),
- &nsjail__id_map__descriptor,
- NULL,
- 0, /* flags */
- 0, NULL, NULL /* reserved1,reserved2, etc */
- },
};
static const unsigned nsjail__ns_jail_config__field_indices_by_name[] = {
11, /* field[11] = log_level */
7, /* field[7] = max_conns_per_ip */
0, /* field[0] = mode */
- 40, /* field[40] = newgidmap */
- 39, /* field[39] = newuidmap */
15, /* field[15] = pass_fd */
25, /* field[25] = persona_addr_compat_layout */
28, /* field[28] = persona_addr_limit_3gb */
static const ProtobufCIntRange nsjail__ns_jail_config__number_ranges[2 + 1] = {
{1, 0},
{6, 3},
- {0, 41}
+ {0, 39}
};
const ProtobufCMessageDescriptor nsjail__ns_jail_config__descriptor = {
"Nsjail__NsJailConfig",
"nsjail",
sizeof(Nsjail__NsJailConfig),
- 41,
+ 39,
nsjail__ns_jail_config__field_descriptors,
nsjail__ns_jail_config__field_indices_by_name,
2, nsjail__ns_jail_config__number_ranges,
char *inside_id;
char *outside_id;
uint32_t count;
+ protobuf_c_boolean use_newidmap;
};
extern char nsjail__id_map__inside_id__default_value[];
extern char nsjail__id_map__outside_id__default_value[];
#define NSJAIL__ID_MAP__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&nsjail__id_map__descriptor) \
- , nsjail__id_map__inside_id__default_value, nsjail__id_map__outside_id__default_value, 1u }
+ , nsjail__id_map__inside_id__default_value, nsjail__id_map__outside_id__default_value, 1u, 0 }
struct _Nsjail__NsJailConfig {
ProtobufCMessage base;
Nsjail__IdMap **uidmap;
size_t n_gidmap;
Nsjail__IdMap **gidmap;
- size_t n_newuidmap;
- Nsjail__IdMap **newuidmap;
- size_t n_newgidmap;
- Nsjail__IdMap **newgidmap;
};
extern char nsjail__ns_jail_config__hostname__default_value[];
extern char nsjail__ns_jail_config__cwd__default_value[];
extern char nsjail__ns_jail_config__bindhost__default_value[];
#define NSJAIL__NS_JAIL_CONFIG__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&nsjail__ns_jail_config__descriptor) \
- , NSJAIL__MODE__ONCE, NULL, 0, nsjail__ns_jail_config__hostname__default_value, nsjail__ns_jail_config__cwd__default_value, 0u, nsjail__ns_jail_config__bindhost__default_value, 0u, 600u, 0, NULL, 0,0, 0, 0, 0, 0,NULL, 0, 0, 512ull, 0ull, 600ull, 1ull, 32ull, 0,0, 0,0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL }
+ , NSJAIL__MODE__ONCE, NULL, 0, nsjail__ns_jail_config__hostname__default_value, nsjail__ns_jail_config__cwd__default_value, 0u, nsjail__ns_jail_config__bindhost__default_value, 0u, 600u, 0, NULL, 0,0, 0, 0, 0, 0,NULL, 0, 0, 512ull, 0ull, 600ull, 1ull, 32ull, 0,0, 0,0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,NULL, 0,NULL }
/* Nsjail__IdMap methods */
void nsjail__id_map__init(Nsjail__IdMap * message);
required string inside_id = 1 [default = ""];
required string outside_id = 2 [default = ""];
required uint32 count = 3 [default = 1];
+ required bool use_newidmap = 4 [default = false];
}
message NsJailConfig {
repeated IdMap uidmap = 40;
repeated IdMap gidmap = 41;
- repeated IdMap newuidmap = 42;
- repeated IdMap newgidmap = 43;
}