From: Robert Swiecki Date: Fri, 26 May 2017 22:09:08 +0000 (+0200) Subject: config.proto: use string instead of bytes X-Git-Tag: 1.4~100 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb8ce1ca9075aea16b72d209b29aea18a08c3ea9;p=platform%2Fupstream%2Fnsjail.git config.proto: use string instead of bytes --- diff --git a/config.c b/config.c index ea44275..c9e3bc0 100644 --- a/config.c +++ b/config.c @@ -59,18 +59,18 @@ static bool configParseInternal(struct nsjconf_t *nsjconf, Nsjail__NsJailConfig LOG_E("Uknown running mode: %d", njc->mode); return false; } - if (njc->has_chroot_dir) { - nsjconf->chroot = utilStrDupLen((char *)njc->chroot_dir.data, njc->chroot_dir.len); + if (njc->chroot_dir) { + nsjconf->chroot = utilStrDup(njc->chroot_dir); } - nsjconf->hostname = utilStrDupLen((char *)njc->hostname.data, njc->hostname.len); - nsjconf->cwd = utilStrDupLen((char *)njc->cwd.data, njc->cwd.len); - nsjconf->bindhost = utilStrDupLen((char *)njc->bindhost.data, njc->bindhost.len); + nsjconf->hostname = utilStrDup(njc->hostname); + nsjconf->cwd = utilStrDup(njc->cwd); + nsjconf->bindhost = utilStrDup(njc->bindhost); nsjconf->max_conns_per_ip = njc->max_conns_per_ip; nsjconf->tlimit = njc->time_limit; nsjconf->daemonize = njc->daemon; - if (njc->has_log_file) { - nsjconf->logfile = utilStrDupLen((char *)njc->log_file.data, njc->log_file.len); + if (njc->log_file) { + nsjconf->logfile = utilStrDup(njc->log_file); } if (njc->has_log_level) { switch (njc->log_level) { @@ -96,7 +96,7 @@ static bool configParseInternal(struct nsjconf_t *nsjconf, Nsjail__NsJailConfig } - if (njc->has_log_file || njc->has_log_level) { + if (njc->log_file || njc->has_log_level) { if (logInitLogFile(nsjconf) == false) { return false; } @@ -152,57 +152,36 @@ static bool configParseInternal(struct nsjconf_t *nsjconf, Nsjail__NsJailConfig nsjconf->clone_newcgroup = njc->clone_newcgroup; for (size_t i = 0; i < njc->n_uidmap; i++) { - const char *i_id = - utilStrDupLen((char *)njc->uidmap[i]->inside_id.data, - njc->uidmap[i]->inside_id.len); - const char *o_id = - utilStrDupLen((char *)njc->uidmap[i]->outside_id.data, - njc->uidmap[i]->outside_id.len); struct idmap_t *p = - userParseId(i_id, o_id, njc->uidmap[i]->count, false /* is_gid */ ); + userParseId(njc->uidmap[i]->inside_id, njc->uidmap[i]->outside_id, + njc->uidmap[i]->count, false /* is_gid */ ); if (p == NULL) { return false; } TAILQ_INSERT_TAIL(&nsjconf->uids, p, pointers); } for (size_t i = 0; i < njc->n_gidmap; i++) { - const char *i_id = - utilStrDupLen((char *)njc->gidmap[i]->inside_id.data, - njc->uidmap[i]->inside_id.len); - const char *o_id = - utilStrDupLen((char *)njc->gidmap[i]->outside_id.data, - njc->uidmap[i]->outside_id.len); struct idmap_t *p = - userParseId(i_id, o_id, njc->gidmap[i]->count, true /* is_gid */ ); + userParseId(njc->gidmap[i]->inside_id, njc->gidmap[i]->outside_id, + njc->gidmap[i]->count, true /* is_gid */ ); if (p == NULL) { return false; } TAILQ_INSERT_TAIL(&nsjconf->gids, p, pointers); } for (size_t i = 0; i < njc->n_newuidmap; i++) { - const char *i_id = - utilStrDupLen((char *)njc->newuidmap[i]->inside_id.data, - njc->uidmap[i]->inside_id.len); - const char *o_id = - utilStrDupLen((char *)njc->newuidmap[i]->outside_id.data, - njc->uidmap[i]->outside_id.len); struct idmap_t *p = - userParseId(i_id, o_id, njc->newuidmap[i]->count, false /* is_gid */ ); + 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++) { - const char *i_id = - utilStrDupLen((char *)njc->newgidmap[i]->inside_id.data, - njc->uidmap[i]->inside_id.len); - const char *o_id = - utilStrDupLen((char *)njc->newgidmap[i]->outside_id.data, - njc->uidmap[i]->outside_id.len); struct idmap_t *p = - userParseId(i_id, o_id, njc->newgidmap[i]->count, true /* is_gid */ ); + userParseId(njc->newgidmap[i]->inside_id, njc->newgidmap[i]->outside_id, + njc->newgidmap[i]->count, true /* is_gid */ ); if (p == NULL) { return false; } diff --git a/config.pb-c.c b/config.pb-c.c index 21ba063..bf24c2c 100644 --- a/config.pb-c.c +++ b/config.pb-c.c @@ -77,7 +77,7 @@ static const ProtobufCFieldDescriptor nsjail__id_map__field_descriptors[3] = { "inside_id", 1, PROTOBUF_C_LABEL_REQUIRED, - PROTOBUF_C_TYPE_BYTES, + PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ offsetof(Nsjail__IdMap, inside_id), NULL, @@ -89,7 +89,7 @@ static const ProtobufCFieldDescriptor nsjail__id_map__field_descriptors[3] = { "outside_id", 2, PROTOBUF_C_LABEL_REQUIRED, - PROTOBUF_C_TYPE_BYTES, + PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ offsetof(Nsjail__IdMap, outside_id), NULL, @@ -137,18 +137,12 @@ const ProtobufCMessageDescriptor nsjail__id_map__descriptor = { NULL, NULL, NULL /* reserved[123] */ }; -uint8_t nsjail__ns_jail_config__hostname__default_value_data[] = "NSJAIL"; -uint8_t nsjail__ns_jail_config__cwd__default_value_data[] = "/"; -uint8_t nsjail__ns_jail_config__bindhost__default_value_data[] = "::"; +char nsjail__ns_jail_config__hostname__default_value[] = "NSJAIL"; +char nsjail__ns_jail_config__cwd__default_value[] = "/"; +char nsjail__ns_jail_config__bindhost__default_value[] = "::"; static const Nsjail__Mode nsjail__ns_jail_config__mode__default_value = NSJAIL__MODE__ONCE; static const protobuf_c_boolean nsjail__ns_jail_config__is_root_rw__default_value = 0; -static const ProtobufCBinaryData nsjail__ns_jail_config__hostname__default_value = - { 6, nsjail__ns_jail_config__hostname__default_value_data }; -static const ProtobufCBinaryData nsjail__ns_jail_config__cwd__default_value = - { 1, nsjail__ns_jail_config__cwd__default_value_data }; static const uint32_t nsjail__ns_jail_config__port__default_value = 0u; -static const ProtobufCBinaryData nsjail__ns_jail_config__bindhost__default_value = - { 2, nsjail__ns_jail_config__bindhost__default_value_data }; static const uint32_t nsjail__ns_jail_config__max_conns_per_ip__default_value = 0u; static const uint32_t nsjail__ns_jail_config__time_limit__default_value = 600u; static const protobuf_c_boolean nsjail__ns_jail_config__daemon__default_value = 0; @@ -194,8 +188,8 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[ "chroot_dir", 2, PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BYTES, - offsetof(Nsjail__NsJailConfig, has_chroot_dir), + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ offsetof(Nsjail__NsJailConfig, chroot_dir), NULL, NULL, @@ -218,7 +212,7 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[ "hostname", 6, PROTOBUF_C_LABEL_REQUIRED, - PROTOBUF_C_TYPE_BYTES, + PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ offsetof(Nsjail__NsJailConfig, hostname), NULL, @@ -230,7 +224,7 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[ "cwd", 7, PROTOBUF_C_LABEL_REQUIRED, - PROTOBUF_C_TYPE_BYTES, + PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ offsetof(Nsjail__NsJailConfig, cwd), NULL, @@ -254,7 +248,7 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[ "bindhost", 9, PROTOBUF_C_LABEL_REQUIRED, - PROTOBUF_C_TYPE_BYTES, + PROTOBUF_C_TYPE_STRING, 0, /* quantifier_offset */ offsetof(Nsjail__NsJailConfig, bindhost), NULL, @@ -302,8 +296,8 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[ "log_file", 13, PROTOBUF_C_LABEL_OPTIONAL, - PROTOBUF_C_TYPE_BYTES, - offsetof(Nsjail__NsJailConfig, has_log_file), + PROTOBUF_C_TYPE_STRING, + 0, /* quantifier_offset */ offsetof(Nsjail__NsJailConfig, log_file), NULL, NULL, diff --git a/config.pb-c.h b/config.pb-c.h index 0051738..05b9713 100644 --- a/config.pb-c.h +++ b/config.pb-c.h @@ -35,29 +35,27 @@ typedef enum _Nsjail__LogLevel { struct _Nsjail__IdMap { ProtobufCMessage base; - ProtobufCBinaryData inside_id; - ProtobufCBinaryData outside_id; + char *inside_id; + char *outside_id; uint32_t count; }; #define NSJAIL__ID_MAP__INIT \ { PROTOBUF_C_MESSAGE_INIT (&nsjail__id_map__descriptor) \ - , {0,NULL}, {0,NULL}, 1u } + , NULL, NULL, 1u } struct _Nsjail__NsJailConfig { ProtobufCMessage base; Nsjail__Mode mode; - protobuf_c_boolean has_chroot_dir; - ProtobufCBinaryData chroot_dir; + char *chroot_dir; protobuf_c_boolean is_root_rw; - ProtobufCBinaryData hostname; - ProtobufCBinaryData cwd; + char *hostname; + char *cwd; uint32_t port; - ProtobufCBinaryData bindhost; + char *bindhost; uint32_t max_conns_per_ip; uint32_t time_limit; protobuf_c_boolean daemon; - protobuf_c_boolean has_log_file; - ProtobufCBinaryData log_file; + char *log_file; protobuf_c_boolean has_log_level; Nsjail__LogLevel log_level; protobuf_c_boolean keep_env; @@ -97,12 +95,12 @@ struct _Nsjail__NsJailConfig { size_t n_newgidmap; Nsjail__IdMap **newgidmap; }; -extern uint8_t nsjail__ns_jail_config__hostname__default_value_data[]; -extern uint8_t nsjail__ns_jail_config__cwd__default_value_data[]; -extern uint8_t nsjail__ns_jail_config__bindhost__default_value_data[]; +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, 0,{0,NULL}, 0, { 6, nsjail__ns_jail_config__hostname__default_value_data }, { 1, nsjail__ns_jail_config__cwd__default_value_data }, 0u, { 2, nsjail__ns_jail_config__bindhost__default_value_data }, 0u, 600u, 0, 0,{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, 0,NULL, 0,NULL } /* Nsjail__IdMap methods */ void nsjail__id_map__init(Nsjail__IdMap * message); diff --git a/config.proto b/config.proto index 11bb2c6..35ef9d7 100644 --- a/config.proto +++ b/config.proto @@ -18,25 +18,25 @@ enum LogLevel { } message IdMap { - required bytes inside_id = 1; - required bytes outside_id = 2; + required string inside_id = 1; + required string outside_id = 2; required uint32 count = 3 [default = 1]; } message NsJailConfig { required Mode mode = 1 [default = ONCE]; - optional bytes chroot_dir = 2; + optional string chroot_dir = 2; required bool is_root_rw = 3 [default = false]; - required bytes hostname = 6 [default = "NSJAIL"]; - required bytes cwd = 7 [default = "/"]; + required string hostname = 6 [default = "NSJAIL"]; + required string cwd = 7 [default = "/"]; required uint32 port = 8 [default = 0]; - required bytes bindhost = 9 [default = "::"]; + required string bindhost = 9 [default = "::"]; required uint32 max_conns_per_ip = 10 [default = 0]; required uint32 time_limit = 11 [default = 600]; required bool daemon = 12 [default = false]; - optional bytes log_file = 13; + optional string log_file = 13; optional LogLevel log_level = 14; required bool keep_env = 15 [default = false]; required bool silent = 16 [default = false];