Message ID | 20231003091032.06e697a3@gandalf.local.home (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [v2] libtraceeval: Fix comparing unsigned against zero | expand |
On Tue, Oct 03, 2023 at 09:10:32AM -0400, Steven Rostedt wrote: > From: "Steven Rostedt (Google)" <rostedt@goodmis.org> > > nr_key_types and nr_val_types are both size_t which is an unsized number. > A compare against zero is always false: > > if (teval->nr_key_types < 0) > > Change them to ssize_t (signed type). > > Also change the few places the "size_t i" is used where it does: > > for (; i >= 0; i--) > > as that too needs to be signed to work. > > Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> Reviewed-by: Ross Zwisler <zwisler@google.com>
diff --git a/src/eval-local.h b/src/eval-local.h index 5c3918f17cc1..f7a9de4628ba 100644 --- a/src/eval-local.h +++ b/src/eval-local.h @@ -66,8 +66,8 @@ struct traceeval { struct traceeval_type *key_types; struct traceeval_type *val_types; struct hash_table *hist; - size_t nr_key_types; - size_t nr_val_types; + ssize_t nr_key_types; + ssize_t nr_val_types; }; struct traceeval_iterator { diff --git a/src/histograms.c b/src/histograms.c index 96f0926f062c..9f9594aa9546 100644 --- a/src/histograms.c +++ b/src/histograms.c @@ -159,7 +159,7 @@ static size_t type_alloc(const struct traceeval_type *defs, { struct traceeval_type *new_defs = NULL; size_t size; - size_t i; + ssize_t i; *copy = NULL; @@ -196,7 +196,7 @@ fail: else print_err("traceeval_type list missing a name"); - for (; i >=0; i--) + for (; i >= 0; i--) free(new_defs[i].name); free(new_defs); return -1; @@ -785,7 +785,7 @@ static int update_entry(struct traceeval *teval, struct entry *entry, union traceeval_data *copy = entry->vals; union traceeval_data old[teval->nr_val_types]; size_t size = teval->nr_val_types; - size_t i; + ssize_t i; if (!size) return 0;