return -error;
}
- for (i = 0; i < n_input_iovec; i++) {
- if (input_iovec[i].iov_len < STRLEN("MESSAGE="))
- continue;
-
- if (memcmp(input_iovec[i].iov_base, "MESSAGE=", STRLEN("MESSAGE=")) == 0)
+ for (i = 0; i < n_input_iovec; i++)
+ if (memory_startswith(input_iovec[i].iov_base, input_iovec[i].iov_len, "MESSAGE="))
break;
- }
if (_unlikely_(i >= n_input_iovec)) /* Couldn't find MESSAGE=? */
return -error;
assert(context);
for (i = 0; i < ELEMENTSOF(context_field_names); i++) {
- size_t l;
+ char *p;
if (!context_field_names[i])
continue;
- l = strlen(context_field_names[i]);
- if (iovec->iov_len < l)
- continue;
-
- if (memcmp(iovec->iov_base, context_field_names[i], l) != 0)
+ p = memory_startswith(iovec->iov_base, iovec->iov_len, context_field_names[i]);
+ if (!p)
continue;
/* Note that these strings are NUL terminated, because we made sure that a trailing NUL byte is in the
* buffer, though not included in the iov_len count. (see below) */
- context[i] = (char*) iovec->iov_base + l;
+ context[i] = p;
break;
}
}
}
int curl_header_strdup(const void *contents, size_t sz, const char *field, char **value) {
- const char *p = contents;
- size_t l;
+ const char *p;
char *s;
- l = strlen(field);
- if (sz < l)
+ p = memory_startswith(contents, sz, field);
+ if (!p)
return 0;
- if (memcmp(p, field, l) != 0)
- return 0;
-
- p += l;
- sz -= l;
+ sz -= p - (const char*) contents;
if (memchr(p, 0, sz))
return 0;
}
static bool line_begins(const char *s, size_t m, const char *word) {
- size_t l;
-
- l = strlen(word);
- if (m < l)
- return false;
+ const char *p;
- if (memcmp(s, word, l) != 0)
+ p = memory_startswith(s, m, word);
+ if (!p)
return false;
- return m == l || (m > l && s[l] == ' ');
+ return IN_SET(*p, 0, ' ');
}
static int verify_anonymous_token(sd_bus *b, const char *p, size_t l) {
if (encoded_size <= 0 || encoded_size > DNS_LABEL_MAX)
return -EINVAL;
- if (encoded_size < sizeof(IDNA_ACE_PREFIX)-1)
- return 0;
-
- if (memcmp(encoded, IDNA_ACE_PREFIX, sizeof(IDNA_ACE_PREFIX) -1) != 0)
+ if (!memory_startswith(encoded, encoded_size, IDNA_ACE_PREFIX))
return 0;
input = stringprep_utf8_to_ucs4(encoded, encoded_size, &input_size);
char *n;
unsigned u;
- if (length >= 9 &&
- memcmp(data, "_BOOT_ID=", 9) == 0)
+ if (memory_startswith(data, length, "_BOOT_ID="))
continue;
eq = memchr(data, '=', length);
size_t m;
unsigned u;
- /* We already printed the boot id, from the data in
- * the header, hence let's suppress it here */
- if (length >= 9 &&
- memcmp(data, "_BOOT_ID=", 9) == 0)
+ /* We already printed the boot id, from the data in the header, hence let's suppress it here */
+ if (memory_startswith(data, length, "_BOOT_ID="))
continue;
eq = memchr(data, '=', length);