Function Curl_bufref_ptr() now returns a const char *.
New function Curl_bufref_uptr() returns a const unsigned char *.
Usage and doc updated.
Closes #19827
## `ptr`
```c
-const unsigned char *Curl_bufref_ptr(const struct bufref *br);
+const char *Curl_bufref_ptr(const struct bufref *br);
+```
+
+Returns a `const char *` to the referenced buffer.
+
+## `uptr`
+
+```c
+const unsigned char *Curl_bufref_uptr(const struct bufref *br);
```
Returns a `const unsigned char *` to the referenced buffer.
/*
* Get a pointer to the referenced buffer.
*/
-const unsigned char *Curl_bufref_ptr(const struct bufref *br)
+const unsigned char *Curl_bufref_uptr(const struct bufref *br)
{
DEBUGASSERT(br);
DEBUGASSERT(br->signature == SIGNATURE);
return br->ptr;
}
+/*
+ * Get a pointer to the referenced string.
+ */
+const char *Curl_bufref_ptr(const struct bufref *br)
+{
+ DEBUGASSERT(br);
+ DEBUGASSERT(br->signature == SIGNATURE);
+ DEBUGASSERT(br->ptr || !br->len);
+
+ return (const char *) br->ptr;
+}
+
/*
* Get the length of the referenced buffer data.
*/
void Curl_bufref_init(struct bufref *br);
void Curl_bufref_set(struct bufref *br, const void *ptr, size_t len,
void (*dtor)(void *));
-const unsigned char *Curl_bufref_ptr(const struct bufref *br);
+const char *Curl_bufref_ptr(const struct bufref *br);
+const unsigned char *Curl_bufref_uptr(const struct bufref *br);
size_t Curl_bufref_len(const struct bufref *br);
CURLcode Curl_bufref_memdup(struct bufref *br, const void *ptr, size_t len);
void Curl_bufref_free(struct bufref *br);
if(!result && (sasl->params->flags & SASL_FLAG_BASE64)) {
unsigned char *msg;
size_t msglen;
- const char *serverdata = (const char *)Curl_bufref_ptr(out);
+ const char *serverdata = Curl_bufref_ptr(out);
if(!*serverdata || *serverdata == '=')
Curl_bufref_set(out, NULL, 0, NULL);
char *base64;
size_t base64len;
- result = curlx_base64_encode(Curl_bufref_ptr(msg),
+ result = curlx_base64_encode(Curl_bufref_uptr(msg),
Curl_bufref_len(msg), &base64, &base64len);
if(!result)
Curl_bufref_set(msg, base64, base64len, curl_free);
hostname, ntlm, &ntlmmsg);
if(!result) {
DEBUGASSERT(Curl_bufref_len(&ntlmmsg) != 0);
- result = curlx_base64_encode(Curl_bufref_ptr(&ntlmmsg),
+ result = curlx_base64_encode(Curl_bufref_uptr(&ntlmmsg),
Curl_bufref_len(&ntlmmsg), &base64, &len);
if(!result) {
curlx_free(*allocuserpwd);
result = Curl_auth_create_ntlm_type3_message(data, userp, passwdp,
ntlm, &ntlmmsg);
if(!result && Curl_bufref_len(&ntlmmsg)) {
- result = curlx_base64_encode(Curl_bufref_ptr(&ntlmmsg),
+ result = curlx_base64_encode(Curl_bufref_uptr(&ntlmmsg),
Curl_bufref_len(&ntlmmsg), &base64, &len);
if(!result) {
curlx_free(*allocuserpwd);
struct imap_conn *imapc =
Curl_conn_meta_get(data->conn, CURL_META_IMAP_CONN);
CURLcode result = CURLE_OK;
- const char *ir = (const char *)Curl_bufref_ptr(initresp);
+ const char *ir = Curl_bufref_ptr(initresp);
if(!imapc)
return CURLE_FAILED_INIT;
(void)mech;
if(!imapc)
return CURLE_FAILED_INIT;
- return Curl_pp_sendf(data, &imapc->pp,
- "%s", (const char *)Curl_bufref_ptr(resp));
+ return Curl_pp_sendf(data, &imapc->pp, "%s", Curl_bufref_ptr(resp));
}
/***********************************************************************
struct pop3_conn *pop3c =
Curl_conn_meta_get(data->conn, CURL_META_POP3_CONN);
CURLcode result = CURLE_OK;
- const char *ir = (const char *)Curl_bufref_ptr(initresp);
+ const char *ir = Curl_bufref_ptr(initresp);
if(!pop3c)
return CURLE_FAILED_INIT;
if(!pop3c)
return CURLE_FAILED_INIT;
- return Curl_pp_sendf(data, &pop3c->pp,
- "%s", (const char *) Curl_bufref_ptr(resp));
+ return Curl_pp_sendf(data, &pop3c->pp, "%s", Curl_bufref_ptr(resp));
}
/***********************************************************************
CURLcode result = CURLE_OK;
struct smtp_conn *smtpc =
Curl_conn_meta_get(data->conn, CURL_META_SMTP_CONN);
- const char *ir = (const char *)Curl_bufref_ptr(initresp);
+ const char *ir = Curl_bufref_ptr(initresp);
if(!smtpc)
return CURLE_FAILED_INIT;
(void)mech;
if(!smtpc)
return CURLE_FAILED_INIT;
- return Curl_pp_sendf(data, &smtpc->pp,
- "%s", (const char *)Curl_bufref_ptr(resp));
+ return Curl_pp_sendf(data, &smtpc->pp, "%s", Curl_bufref_ptr(resp));
}
/***********************************************************************
/* Update the digest with the given challenge */
if(Curl_bufref_len(chlg))
- Curl_HMAC_update(ctxt, Curl_bufref_ptr(chlg),
+ Curl_HMAC_update(ctxt, Curl_bufref_uptr(chlg),
curlx_uztoui(Curl_bufref_len(chlg)));
/* Finalise the digest */
char *alg, size_t alen,
char *qop, size_t qlen)
{
- const char *chlg = (const char *)Curl_bufref_ptr(chlgref);
+ const char *chlg = Curl_bufref_ptr(chlgref);
/* Ensure we have a valid challenge message */
if(!Curl_bufref_len(chlgref))
char *response;
size_t outlen;
- res = gsasl_step(gsasl->client,
- (const char *)Curl_bufref_ptr(chlg), Curl_bufref_len(chlg),
+ res = gsasl_step(gsasl->client, Curl_bufref_ptr(chlg), Curl_bufref_len(chlg),
&response, &outlen);
if(res != GSASL_OK && res != GSASL_NEEDS_MORE) {
failf(data, "GSASL step: %s", gsasl_strerror(res));
{
unsigned short target_info_len = 0;
unsigned int target_info_offset = 0;
- const unsigned char *type2 = Curl_bufref_ptr(type2ref);
+ const unsigned char *type2 = Curl_bufref_uptr(type2ref);
size_t type2len = Curl_bufref_len(type2ref);
#ifdef CURL_DISABLE_VERBOSE_STRINGS
*/
CURLcode result = CURLE_OK;
- const unsigned char *type2 = Curl_bufref_ptr(type2ref);
+ const unsigned char *type2 = Curl_bufref_uptr(type2ref);
size_t type2len = Curl_bufref_len(type2ref);
#ifdef CURL_DISABLE_VERBOSE_STRINGS
}
/* Store the challenge for later use */
- ntlm->input_token = Curl_memdup0((const char *)Curl_bufref_ptr(type2),
+ ntlm->input_token = Curl_memdup0(Curl_bufref_ptr(type2),
Curl_bufref_len(type2));
if(!ntlm->input_token)
return CURLE_OUT_OF_MEMORY;