This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/17604 ) Change subject: logging: use LOGL_NOTICE when no loglevel is set ...................................................................... logging: use LOGL_NOTICE when no loglevel is set when the API user of libosmocores logging infrastructure does not set a pre-defined logging level in struct log_info_cat, the result would be an invalid logging level. In order to avoid problems with that and to spare all the additional .loglevel = LOGL_NOTICE (API users are advised to use LOGL_NOTICE as default) lines in the user code lets check the logging level on startup and set LOGL_NOTICE if there is no logging level set. Change-Id: Ib9e180261505062505fc4605a98023910f76cde6 Related: OS#2577 --- M src/logging.c 1 file changed, 17 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/logging.c b/src/logging.c index 4d6224d..4aaf515 100644 --- a/src/logging.c +++ b/src/logging.c @@ -1026,6 +1026,7 @@ int log_init(const struct log_info *inf, void *ctx) { int i; + struct log_info_cat *cat_ptr; tall_log_ctx = talloc_named_const(ctx, 1, "logging"); if (!tall_log_ctx) @@ -1043,29 +1044,36 @@ osmo_log_info->num_cat += inf->num_cat; } - osmo_log_info->cat = talloc_zero_array(osmo_log_info, - struct log_info_cat, - osmo_log_info->num_cat); - if (!osmo_log_info->cat) { + cat_ptr = talloc_zero_array(osmo_log_info, struct log_info_cat, + osmo_log_info->num_cat); + if (!cat_ptr) { talloc_free(osmo_log_info); osmo_log_info = NULL; return -ENOMEM; } - if (inf) { /* copy over the user part */ + /* copy over the user part and sanitize loglevel */ + if (inf) { for (i = 0; i < inf->num_cat; i++) { - memcpy((struct log_info_cat *) &osmo_log_info->cat[i], - &inf->cat[i], sizeof(struct log_info_cat)); + memcpy(&cat_ptr[i], &inf->cat[i], + sizeof(struct log_info_cat)); + + /* Make sure that the loglevel is set to NOTICE in case + * no loglevel has been preset. */ + if (!cat_ptr[i].loglevel) { + cat_ptr[i].loglevel = LOGL_NOTICE; + } } } /* copy over the library part */ for (i = 0; i < ARRAY_SIZE(internal_cat); i++) { unsigned int cn = osmo_log_info->num_cat_user + i; - memcpy((struct log_info_cat *) &osmo_log_info->cat[cn], - &internal_cat[i], sizeof(struct log_info_cat)); + memcpy(&cat_ptr[cn], &internal_cat[i], sizeof(struct log_info_cat)); } + osmo_log_info->cat = cat_ptr; + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/17604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib9e180261505062505fc4605a98023910f76cde6 Gerrit-Change-Number: 17604 Gerrit-PatchSet: 8 Gerrit-Owner: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: fixeria <axilirator at gmail.com> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200512/e1e38802/attachment.htm>