summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/file.c4
-rw-r--r--utils/url.c4
-rw-r--r--utils/url.h5
3 files changed, 8 insertions, 5 deletions
diff --git a/utils/file.c b/utils/file.c
index 888811004..6224d1c3c 100644
--- a/utils/file.c
+++ b/utils/file.c
@@ -136,7 +136,9 @@ static nserror posix_nsurl_to_path(struct nsurl *url, char **path_out)
return NSERROR_BAD_PARAMETER;
}
- res = url_unescape(lwc_string_data(urlpath), &path);
+ res = url_unescape(lwc_string_data(urlpath),
+ lwc_string_length(urlpath),
+ &path);
lwc_string_unref(urlpath);
if (res != NSERROR_OK) {
return res;
diff --git a/utils/url.c b/utils/url.c
index 1e3ef423c..4fcbccd1a 100644
--- a/utils/url.c
+++ b/utils/url.c
@@ -33,12 +33,12 @@
/* exported interface documented in utils/url.h */
-nserror url_unescape(const char *str, char **result)
+nserror url_unescape(const char *str, int length, char **result)
{
char *curlstr;
char *retstr;
- curlstr = curl_unescape(str, 0);
+ curlstr = curl_unescape(str, length);
if (curlstr == NULL) {
return NSERROR_NOMEM;
}
diff --git a/utils/url.h b/utils/url.h
index aafdf1e15..94579e39e 100644
--- a/utils/url.h
+++ b/utils/url.h
@@ -46,9 +46,10 @@ nserror url_escape(const char *unescaped, size_t toskip, bool sptoplus,
* Convert an escaped string to plain.
*
* \param[in] str String to unescape.
+ * \parm[in] length Length of string or 0 to use strlen
* \param[out] result unescaped string owned by caller must be freed with free()
- * \return NSERROR_OK on success
+ * \return NSERROR_OK on success
*/
-nserror url_unescape(const char *str, char **result);
+nserror url_unescape(const char *str, int length, char **result);
#endif