mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-20 03:20:05 +01:00
Fix a few gcc analyzer complaints in util-strings.*
Sprinkle a few asserts into the various string helpers for where our arguments must not be NULL. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
2ebb6f629f
commit
35a237e24c
2 changed files with 31 additions and 0 deletions
|
|
@ -39,6 +39,8 @@
|
||||||
static const char *
|
static const char *
|
||||||
next_word(const char **state, size_t *len, const char *separators)
|
next_word(const char **state, size_t *len, const char *separators)
|
||||||
{
|
{
|
||||||
|
assert(state != NULL);
|
||||||
|
|
||||||
const char *next = *state;
|
const char *next = *state;
|
||||||
size_t l;
|
size_t l;
|
||||||
|
|
||||||
|
|
@ -72,6 +74,7 @@ strv_from_argv(int argc, char **argv)
|
||||||
char **strv = NULL;
|
char **strv = NULL;
|
||||||
|
|
||||||
assert(argc >= 0);
|
assert(argc >= 0);
|
||||||
|
assert(argv != NULL);
|
||||||
|
|
||||||
if (argc == 0)
|
if (argc == 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -109,6 +112,8 @@ char **
|
||||||
strv_from_string(const char *in, const char *separators, size_t *num_elements)
|
strv_from_string(const char *in, const char *separators, size_t *num_elements)
|
||||||
{
|
{
|
||||||
assert(in != NULL);
|
assert(in != NULL);
|
||||||
|
assert(separators != NULL);
|
||||||
|
assert(num_elements != NULL);
|
||||||
|
|
||||||
const char *s = in;
|
const char *s = in;
|
||||||
size_t l, nelems = 0;
|
size_t l, nelems = 0;
|
||||||
|
|
@ -159,6 +164,8 @@ strv_from_string(const char *in, const char *separators, size_t *num_elements)
|
||||||
char *
|
char *
|
||||||
strv_join(char **strv, const char *joiner)
|
strv_join(char **strv, const char *joiner)
|
||||||
{
|
{
|
||||||
|
assert(strv != NULL);
|
||||||
|
|
||||||
char **s;
|
char **s;
|
||||||
char *str;
|
char *str;
|
||||||
size_t slen = 0;
|
size_t slen = 0;
|
||||||
|
|
@ -200,6 +207,8 @@ strv_join(char **strv, const char *joiner)
|
||||||
const char *
|
const char *
|
||||||
safe_basename(const char *filename)
|
safe_basename(const char *filename)
|
||||||
{
|
{
|
||||||
|
assert(filename != NULL);
|
||||||
|
|
||||||
const char *basename;
|
const char *basename;
|
||||||
|
|
||||||
if (*filename == '\0')
|
if (*filename == '\0')
|
||||||
|
|
@ -229,6 +238,8 @@ safe_basename(const char *filename)
|
||||||
char *
|
char *
|
||||||
trunkname(const char *filename)
|
trunkname(const char *filename)
|
||||||
{
|
{
|
||||||
|
assert(filename != NULL);
|
||||||
|
|
||||||
const char *base = safe_basename(filename);
|
const char *base = safe_basename(filename);
|
||||||
char *suffix;
|
char *suffix;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,8 @@ xvasprintf(char **strp, const char *fmt, va_list args)
|
||||||
static inline bool
|
static inline bool
|
||||||
safe_atoi_base(const char *str, int *val, int base)
|
safe_atoi_base(const char *str, int *val, int base)
|
||||||
{
|
{
|
||||||
|
assert(str != NULL);
|
||||||
|
|
||||||
char *endptr;
|
char *endptr;
|
||||||
long v;
|
long v;
|
||||||
|
|
||||||
|
|
@ -167,12 +169,15 @@ safe_atoi_base(const char *str, int *val, int base)
|
||||||
static inline bool
|
static inline bool
|
||||||
safe_atoi(const char *str, int *val)
|
safe_atoi(const char *str, int *val)
|
||||||
{
|
{
|
||||||
|
assert(str != NULL);
|
||||||
return safe_atoi_base(str, val, 10);
|
return safe_atoi_base(str, val, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
safe_atou_base(const char *str, unsigned int *val, int base)
|
safe_atou_base(const char *str, unsigned int *val, int base)
|
||||||
{
|
{
|
||||||
|
assert(str != NULL);
|
||||||
|
|
||||||
char *endptr;
|
char *endptr;
|
||||||
unsigned long v;
|
unsigned long v;
|
||||||
|
|
||||||
|
|
@ -197,12 +202,15 @@ safe_atou_base(const char *str, unsigned int *val, int base)
|
||||||
static inline bool
|
static inline bool
|
||||||
safe_atou(const char *str, unsigned int *val)
|
safe_atou(const char *str, unsigned int *val)
|
||||||
{
|
{
|
||||||
|
assert(str != NULL);
|
||||||
return safe_atou_base(str, val, 10);
|
return safe_atou_base(str, val, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool
|
static inline bool
|
||||||
safe_atod(const char *str, double *val)
|
safe_atod(const char *str, double *val)
|
||||||
{
|
{
|
||||||
|
assert(str != NULL);
|
||||||
|
|
||||||
char *endptr;
|
char *endptr;
|
||||||
double v;
|
double v;
|
||||||
#ifdef HAVE_LOCALE_H
|
#ifdef HAVE_LOCALE_H
|
||||||
|
|
@ -288,6 +296,10 @@ double_array_from_string(const char *in,
|
||||||
const char *separator,
|
const char *separator,
|
||||||
size_t *length)
|
size_t *length)
|
||||||
{
|
{
|
||||||
|
assert(in != NULL);
|
||||||
|
assert(separator != NULL);
|
||||||
|
assert(length != NULL);
|
||||||
|
|
||||||
double *result = NULL;
|
double *result = NULL;
|
||||||
*length = 0;
|
*length = 0;
|
||||||
|
|
||||||
|
|
@ -386,6 +398,8 @@ error:
|
||||||
static inline char *
|
static inline char *
|
||||||
strstrip(const char *input, const char *what)
|
strstrip(const char *input, const char *what)
|
||||||
{
|
{
|
||||||
|
assert(input != NULL);
|
||||||
|
|
||||||
char *str, *last;
|
char *str, *last;
|
||||||
|
|
||||||
str = safe_strdup(&input[strspn(input, what)]);
|
str = safe_strdup(&input[strspn(input, what)]);
|
||||||
|
|
@ -409,6 +423,9 @@ strstrip(const char *input, const char *what)
|
||||||
static inline bool
|
static inline bool
|
||||||
strendswith(const char *str, const char *suffix)
|
strendswith(const char *str, const char *suffix)
|
||||||
{
|
{
|
||||||
|
if (str == NULL)
|
||||||
|
return false;
|
||||||
|
|
||||||
size_t slen = strlen(str);
|
size_t slen = strlen(str);
|
||||||
size_t suffixlen = strlen(suffix);
|
size_t suffixlen = strlen(suffix);
|
||||||
size_t offset;
|
size_t offset;
|
||||||
|
|
@ -423,6 +440,9 @@ strendswith(const char *str, const char *suffix)
|
||||||
static inline bool
|
static inline bool
|
||||||
strstartswith(const char *str, const char *prefix)
|
strstartswith(const char *str, const char *prefix)
|
||||||
{
|
{
|
||||||
|
if (str == NULL)
|
||||||
|
return false;
|
||||||
|
|
||||||
size_t prefixlen = strlen(prefix);
|
size_t prefixlen = strlen(prefix);
|
||||||
|
|
||||||
return prefixlen > 0 ? strneq(str, prefix, strlen(prefix)) : false;
|
return prefixlen > 0 ? strneq(str, prefix, strlen(prefix)) : false;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue