summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/darr.h8
-rw-r--r--lib/elf_py.c14
-rw-r--r--lib/frr_pthread.h8
-rw-r--r--lib/libfrr.c8
-rw-r--r--lib/link_state.c6
-rw-r--r--lib/linklist.h6
-rw-r--r--lib/northbound_oper.c3
-rw-r--r--lib/printf/vfprintf.c16
-rw-r--r--lib/zclient.c6
9 files changed, 41 insertions, 34 deletions
diff --git a/lib/darr.h b/lib/darr.h
index 4638b904d1..76743cc946 100644
--- a/lib/darr.h
+++ b/lib/darr.h
@@ -511,11 +511,11 @@ void *__darr_resize(void *a, uint count, size_t esize, struct memtype *mt);
*/
#define darr_pop(A) \
({ \
- uint __len = _darr_len(A); \
- assert(__len); \
- darr_remove(A, __len - 1); \
+ uint __poplen = _darr_len(A); \
+ assert(__poplen); \
+ darr_remove(A, __poplen - 1); \
/* count on fact that we don't resize */ \
- (A)[__len - 1]; \
+ (A)[__poplen - 1]; \
})
/**
diff --git a/lib/elf_py.c b/lib/elf_py.c
index 14012a2173..7609ea59c1 100644
--- a/lib/elf_py.c
+++ b/lib/elf_py.c
@@ -518,12 +518,12 @@ static void elfsect_add_relocations(struct elfsect *w, Elf_Scn *rel,
relw->es = w;
if (relhdr->sh_type == SHT_REL) {
- GElf_Rel _rel, *rel;
+ GElf_Rel _rel, *erel;
- rel = gelf_getrel(reldata, i, &_rel);
+ erel = gelf_getrel(reldata, i, &_rel);
relw->rela = &relw->_rela;
- relw->rela->r_offset = rel->r_offset;
- relw->rela->r_info = rel->r_info;
+ relw->rela->r_offset = erel->r_offset;
+ relw->rela->r_info = erel->r_info;
relw->rela->r_addend = 0;
relw->relative = true;
} else
@@ -581,14 +581,14 @@ static PyObject *elfsect_wrap(struct elffile *ef, Elf_Scn *scn, size_t idx,
elfrelocs_init(&w->relocs);
for (i = 0; i < ef->ehdr->e_shnum; i++) {
- Elf_Scn *scn = elf_getscn(ef->elf, i);
- GElf_Shdr _shdr, *shdr = gelf_getshdr(scn, &_shdr);
+ Elf_Scn *escn = elf_getscn(ef->elf, i);
+ GElf_Shdr _shdr, *shdr = gelf_getshdr(escn, &_shdr);
if (shdr->sh_type != SHT_RELA && shdr->sh_type != SHT_REL)
continue;
if (shdr->sh_info && shdr->sh_info != idx)
continue;
- elfsect_add_relocations(w, scn, shdr);
+ elfsect_add_relocations(w, escn, shdr);
}
return (PyObject *)w;
diff --git a/lib/frr_pthread.h b/lib/frr_pthread.h
index bb751b7071..368ada36ad 100644
--- a/lib/frr_pthread.h
+++ b/lib/frr_pthread.h
@@ -233,11 +233,13 @@ int frr_pthread_non_controlled_startup(pthread_t thread, const char *name,
unused, cleanup(_frr_mtx_unlock))) = _frr_mtx_lock(mutex), \
/* end */
-#define frr_with_mutex(...) \
- for (pthread_mutex_t MACRO_REPEAT(_frr_with_mutex, ##__VA_ARGS__) \
- *_once = NULL; _once == NULL; _once = (void *)1) \
+#define _frr_with_mutex_once(_once, ...) \
+ for (pthread_mutex_t MACRO_REPEAT(_frr_with_mutex, ##__VA_ARGS__)*_once = NULL; \
+ _once == NULL; _once = (void *)1) \
/* end */
+#define frr_with_mutex(...) _frr_with_mutex_once(NAMECTR(_once_), __VA_ARGS__)
+
/* variant 2:
* (more suitable for long blocks, no extra indentation)
*
diff --git a/lib/libfrr.c b/lib/libfrr.c
index 8a37b51c47..d40624a102 100644
--- a/lib/libfrr.c
+++ b/lib/libfrr.c
@@ -1192,9 +1192,10 @@ void frr_detach(void)
frr_check_detach();
}
-void frr_run(struct event_loop *master)
+void frr_run(struct event_loop *loop)
{
char instanceinfo[64] = "";
+ struct event thread;
if (!(di->flags & FRR_MANUAL_VTY_START))
frr_vty_serv_start(false);
@@ -1212,7 +1213,7 @@ void frr_run(struct event_loop *master)
vty_stdio(frr_terminal_close);
if (daemon_ctl_sock != -1) {
set_nonblocking(daemon_ctl_sock);
- event_add_read(master, frr_daemon_ctl, NULL,
+ event_add_read(loop, frr_daemon_ctl, NULL,
daemon_ctl_sock, &daemon_ctl_thread);
}
} else if (di->daemon_mode) {
@@ -1242,8 +1243,7 @@ void frr_run(struct event_loop *master)
/* end fixed stderr startup logging */
zlog_startup_end();
- struct event thread;
- while (event_fetch(master, &thread))
+ while (event_fetch(loop, &thread))
event_call(&thread);
}
diff --git a/lib/link_state.c b/lib/link_state.c
index 3d96c75f6d..27cc2558f5 100644
--- a/lib/link_state.c
+++ b/lib/link_state.c
@@ -2555,9 +2555,9 @@ static void ls_show_edge_json(struct ls_edge *edge, struct json_object *json)
if (CHECK_FLAG(attr->flags, LS_ATTR_UNRSV_BW)) {
jbw = json_object_new_array();
json_object_object_add(jte, "unreserved-bandwidth", jbw);
- for (int i = 0; i < MAX_CLASS_TYPE; i++) {
+ for (i = 0; i < MAX_CLASS_TYPE; i++) {
jobj = json_object_new_object();
- snprintfrr(buf, 13, "class-type-%u", i);
+ snprintfrr(buf, 13, "class-type-%u", (unsigned int)i);
json_object_double_add(jobj, buf,
attr->standard.unrsv_bw[i]);
json_object_array_add(jbw, jobj);
@@ -2599,7 +2599,7 @@ static void ls_show_edge_json(struct ls_edge *edge, struct json_object *json)
if (CHECK_FLAG(attr->flags, LS_ATTR_SRLG)) {
jsrlg = json_object_new_array();
json_object_object_add(jte, "srlgs", jsrlg);
- for (int i = 1; i < attr->srlg_len; i++) {
+ for (i = 1; i < attr->srlg_len; i++) {
jobj = json_object_new_object();
json_object_int_add(jobj, "srlg", attr->srlgs[i]);
json_object_array_add(jsrlg, jobj);
diff --git a/lib/linklist.h b/lib/linklist.h
index f922891df9..d86db36f55 100644
--- a/lib/linklist.h
+++ b/lib/linklist.h
@@ -67,7 +67,11 @@ struct list {
#define listcount(X) ((X)->count)
#define list_isempty(X) ((X)->head == NULL && (X)->tail == NULL)
/* return X->data only if X and X->data are not NULL */
-#define listgetdata(X) (assert(X), assert((X)->data != NULL), (X)->data)
+static inline void *listgetdata(const struct listnode *X)
+{
+ assert((X != NULL) && ((X)->data != NULL));
+ return X->data;
+}
/* App is going to manage listnode memory */
#define listset_app_node_mem(X) ((X)->flags |= LINKLIST_FLAG_NODE_MEM_BY_APP)
#define listnode_init(X, val) ((X)->data = (val))
diff --git a/lib/northbound_oper.c b/lib/northbound_oper.c
index 626c37082e..d9ad9b1701 100644
--- a/lib/northbound_oper.c
+++ b/lib/northbound_oper.c
@@ -157,7 +157,8 @@ nb_op_create_yield_state(const char *xpath, struct yang_translator *translator,
/* remove trailing '/'s */
while (darr_len(ys->xpath) > 1 && ys->xpath[darr_len(ys->xpath) - 2] == '/') {
darr_setlen(ys->xpath, darr_len(ys->xpath) - 1);
- *darr_last(ys->xpath) = 0;
+ if (darr_last(ys->xpath))
+ *darr_last(ys->xpath) = 0;
}
ys->xpath_orig = darr_strdup(xpath);
ys->translator = translator;
diff --git a/lib/printf/vfprintf.c b/lib/printf/vfprintf.c
index 3f6700c838..12c4dad683 100644
--- a/lib/printf/vfprintf.c
+++ b/lib/printf/vfprintf.c
@@ -556,23 +556,23 @@ reswitch: switch (ch) {
case 'G':
if (flags & LONGDBL) {
long double arg = GETARG(long double);
- char fmt[6] = "%.*L";
- fmt[4] = ch;
- fmt[5] = '\0';
+ char lfmt[6] = "%.*L";
+ lfmt[4] = ch;
+ lfmt[5] = '\0';
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- snprintf(buf, sizeof(buf), fmt, prec, arg);
+ snprintf(buf, sizeof(buf), lfmt, prec, arg);
#pragma GCC diagnostic pop
} else {
double arg = GETARG(double);
- char fmt[5] = "%.*";
- fmt[3] = ch;
- fmt[4] = '\0';
+ char lfmt[5] = "%.*";
+ lfmt[3] = ch;
+ lfmt[4] = '\0';
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- snprintf(buf, sizeof(buf), fmt, prec, arg);
+ snprintf(buf, sizeof(buf), lfmt, prec, arg);
#pragma GCC diagnostic pop
}
cp = buf;
diff --git a/lib/zclient.c b/lib/zclient.c
index 3e68e962aa..031f454385 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -3014,7 +3014,7 @@ size_t zebra_interface_link_params_write(struct stream *s,
size_t w, nb_ext_adm_grp;
struct if_link_params *iflp;
int i;
-
+ size_t j;
if (s == NULL || ifp == NULL)
return 0;
@@ -3045,8 +3045,8 @@ size_t zebra_interface_link_params_write(struct stream *s,
/* Extended Administrative Group */
nb_ext_adm_grp = admin_group_nb_words(&iflp->ext_admin_grp);
w += stream_putc(s, nb_ext_adm_grp);
- for (size_t i = 0; i < nb_ext_adm_grp; i++)
- stream_putl(s, admin_group_get_offset(&iflp->ext_admin_grp, i));
+ for (j = 0; j < nb_ext_adm_grp; j++)
+ stream_putl(s, admin_group_get_offset(&iflp->ext_admin_grp, j));
w += stream_putl(s, iflp->rmt_as);
w += stream_put_in_addr(s, &iflp->rmt_ip);