The functions are not meant to touch the input anyway.
Closes #16316
}
/* only returns SERIOUS errors */
-static CURLcode altsvc_add(struct altsvcinfo *asi, char *line)
+static CURLcode altsvc_add(struct altsvcinfo *asi, const char *line)
{
/* Example line:
h2 example.com 443 h3 shiny.example.com 8443 "20191231 10:00:00" 1
#if !defined(CURL_DISABLE_ALTSVC) || defined(USE_HTTPSRR)
-enum alpnid Curl_alpn2alpnid(char *name, size_t len)
+enum alpnid Curl_alpn2alpnid(const char *name, size_t len)
{
if(len == 2) {
if(strncasecompare(name, "h1", 2))
struct Curl_dns_entry;
struct ip_quadruple;
-enum alpnid Curl_alpn2alpnid(char *name, size_t len);
+enum alpnid Curl_alpn2alpnid(const char *name, size_t len);
/* generic function that returns how much time there is left to run, according
to the timeouts set */
}
/* only returns SERIOUS errors */
-static CURLcode hsts_add(struct hsts *h, char *line)
+static CURLcode hsts_add(struct hsts *h, const char *line)
{
/* Example lines:
example.com "20191231 10:00:00"
#define S3_UNSIGNED_PAYLOAD "UNSIGNED-PAYLOAD"
static CURLcode calc_s3_payload_hash(struct Curl_easy *data,
- Curl_HttpReq httpreq, char *provider1,
+ Curl_HttpReq httpreq,
+ const char *provider1,
size_t plen,
unsigned char *sha_hash,
char *sha_hex, char *header)
CURLcode result = CURLE_OUT_OF_MEMORY;
struct connectdata *conn = data->conn;
size_t len;
- char *line;
+ const char *line;
struct Curl_str provider0;
struct Curl_str provider1;
struct Curl_str region = { NULL, 0};
/* Get a word until the first DELIM or end of string. At least one byte long.
return non-zero on error */
-int Curl_str_until(char **linep, struct Curl_str *out,
+int Curl_str_until(const char **linep, struct Curl_str *out,
const size_t max, char delim)
{
- char *s = *linep;
+ const char *s = *linep;
size_t len = 0;
DEBUGASSERT(linep && *linep && out && max && delim);
/* Get a word until the first space or end of string. At least one byte long.
return non-zero on error */
-int Curl_str_word(char **linep, struct Curl_str *out,
+int Curl_str_word(const char **linep, struct Curl_str *out,
const size_t max)
{
return Curl_str_until(linep, out, max, ' ');
/* Get a "quoted" word. No escaping possible.
return non-zero on error */
-int Curl_str_quotedword(char **linep, struct Curl_str *out,
+int Curl_str_quotedword(const char **linep, struct Curl_str *out,
const size_t max)
{
- char *s = *linep;
+ const char *s = *linep;
size_t len = 0;
DEBUGASSERT(linep && *linep && out && max);
/* Advance over a single character.
return non-zero on error */
-int Curl_str_single(char **linep, char byte)
+int Curl_str_single(const char **linep, char byte)
{
DEBUGASSERT(linep && *linep);
if(**linep != byte)
/* Advance over a single space.
return non-zero on error */
-int Curl_str_singlespace(char **linep)
+int Curl_str_singlespace(const char **linep)
{
return Curl_str_single(linep, ' ');
}
/* Get an unsigned number. Leading zeroes are accepted.
return non-zero on error */
-int Curl_str_number(char **linep, size_t *nump, size_t max)
+int Curl_str_number(const char **linep, size_t *nump, size_t max)
{
size_t num = 0;
DEBUGASSERT(linep && *linep && nump);
/* CR or LF
return non-zero on error */
-int Curl_str_newline(char **linep)
+int Curl_str_newline(const char **linep)
{
DEBUGASSERT(linep && *linep);
if(ISNEWLINE(**linep)) {
#define STRE_OVERFLOW 7
struct Curl_str {
- char *str;
+ const char *str;
size_t len;
};
/* Get a word until the first space
return non-zero on error */
-int Curl_str_word(char **linep, struct Curl_str *out, const size_t max);
+int Curl_str_word(const char **linep, struct Curl_str *out, const size_t max);
/* Get a word until the first DELIM or end of string
return non-zero on error */
-int Curl_str_until(char **linep, struct Curl_str *out, const size_t max,
+int Curl_str_until(const char **linep, struct Curl_str *out, const size_t max,
char delim);
/* Get a "quoted" word. No escaping possible.
return non-zero on error */
-int Curl_str_quotedword(char **linep, struct Curl_str *out, const size_t max);
+int Curl_str_quotedword(const char **linep, struct Curl_str *out,
+ const size_t max);
/* Advance over a single character.
return non-zero on error */
-int Curl_str_single(char **linep, char byte);
+int Curl_str_single(const char **linep, char byte);
/* Advance over a single space.
return non-zero on error */
-int Curl_str_singlespace(char **linep);
+int Curl_str_singlespace(const char **linep);
/* Get an unsigned number
return non-zero on error */
-int Curl_str_number(char **linep, size_t *nump, size_t max);
+int Curl_str_number(const char **linep, size_t *nump, size_t max);
/* Check for CR or LF
return non-zero on error */
-int Curl_str_newline(char **linep);
+int Curl_str_newline(const char **linep);
#endif /* HEADER_CURL_STRPARSE_H */
printf("Curl_str_word\n");
for(i = 0; wordparse[i]; i++) {
struct Curl_str out;
- char *line = (char *)wordparse[i];
- char *orgline = line;
+ const char *line = wordparse[i];
+ const char *orgline = line;
int rc = Curl_str_word(&line, &out, 7);
printf("%u: (\"%s\") %d, \"%.*s\" [%d], line %d\n",
i, orgline, rc, (int)out.len, out.str, (int)out.len,
printf("Curl_str_until\n");
for(i = 0; wordparse[i]; i++) {
struct Curl_str out;
- char *line = (char *)wordparse[i];
- char *orgline = line;
+ const char *line = wordparse[i];
+ const char *orgline = line;
int rc = Curl_str_until(&line, &out, 7, 'd');
printf("%u: (\"%s\") %d, \"%.*s\" [%d], line %d\n",
i, orgline, rc, (int)out.len, out.str, (int)out.len,
printf("Curl_str_quotedword\n");
for(i = 0; qwords[i]; i++) {
struct Curl_str out;
- char *line = (char *)qwords[i];
- char *orgline = line;
+ const char *line = qwords[i];
+ const char *orgline = line;
int rc = Curl_str_quotedword(&line, &out, 7);
printf("%u: (\"%s\") %d, \"%.*s\" [%d], line %d\n",
i, orgline, rc, (int)out.len, out.str, (int)out.len,
};
printf("Curl_str_single\n");
for(i = 0; single[i]; i++) {
- char *line = (char *)single[i];
- char *orgline = line;
+ const char *line = single[i];
+ const char *orgline = line;
int rc = Curl_str_single(&line, 'a');
printf("%u: (\"%s\") %d, line %d\n",
i, orgline, rc, (int)(line - orgline));
};
printf("Curl_str_singlespace\n");
for(i = 0; single[i]; i++) {
- char *line = (char *)single[i];
- char *orgline = line;
+ const char *line = single[i];
+ const char *orgline = line;
int rc = Curl_str_singlespace(&line);
printf("%u: (\"%s\") %d, line %d\n",
i, orgline, rc, (int)(line - orgline));
};
printf("Curl_str_single\n");
for(i = 0; single[i]; i++) {
- char *line = (char *)single[i];
- char *orgline = line;
+ const char *line = single[i];
+ const char *orgline = line;
int rc = Curl_str_single(&line, 'a');
printf("%u: (\"%s\") %d, line %d\n",
i, orgline, rc, (int)(line - orgline));
printf("Curl_str_number\n");
for(i = 0; nums[i]; i++) {
size_t num;
- char *line = (char *)nums[i];
- char *orgline = line;
+ const char *line = nums[i];
+ const char *orgline = line;
int rc = Curl_str_number(&line, &num, 1235);
printf("%u: (\"%s\") %d, [%u] line %d\n",
i, orgline, rc, (int)num, (int)(line - orgline));
printf("Curl_str_number / max\n");
for(i = 0; nums[i]; i++) {
size_t num;
- char *line = (char *)nums[i];
- char *orgline = line;
+ const char *line = nums[i];
+ const char *orgline = line;
int rc = Curl_str_number(&line, &num, SIZE_T_MAX);
printf("%u: (\"%s\") %d, [%zu] line %d\n",
i, orgline, rc, num, (int)(line - orgline));
};
printf("Curl_str_newline\n");
for(i = 0; newl[i]; i++) {
- char *line = (char *)newl[i];
- char *orgline = line;
+ const char *line = newl[i];
+ const char *orgline = line;
int rc = Curl_str_newline(&line);
printf("%u: (\"%s\") %d, line %d\n",
i, orgline, rc, (int)(line - orgline));