mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Revert "lavf/utils: add support for special characters encoding in URL"
This reverts commit 4a8fc1d83b
.
The commit caused null pointer derefernces when using udp://
after i fixed that it caused ffmpeg to get stuck and remapped
arguments like ?ttl=255 -> ?ttl%3d255
I dont want to leave this broken thus temporary revert so we all
have some time to look at this without half the network protocols
being broken in the meantime
This commit is contained in:
parent
7b2d50f81e
commit
1c6477f30f
@ -3767,50 +3767,6 @@ void av_pkt_dump_log2(void *avcl, int level, AVPacket *pkt, int dump_payload,
|
||||
pkt_dump_internal(avcl, NULL, level, pkt, dump_payload, st->time_base);
|
||||
}
|
||||
|
||||
/**
|
||||
* Percent encode part of an URL string according to RFC 3986.
|
||||
*
|
||||
* @param component portion of an URL (e.g. protocol, hostname, path) to
|
||||
* percent-encode. This will be percent-encoded in place.
|
||||
* @param allowed string containing the allowed characters which must not be
|
||||
* encoded. It may be NULL if there are no such characters.
|
||||
* @param component_size size in bytes of the component buffer
|
||||
*/
|
||||
static void percent_encode_url(char *component, size_t component_size,
|
||||
const char *allowed)
|
||||
{
|
||||
char enc[MAX_URL_SIZE], c;
|
||||
int enc_len = 0;
|
||||
char *src = component;
|
||||
|
||||
while (c = *src) {
|
||||
if (isalnum(c) || strchr("-._~%", c) ||
|
||||
(allowed && strchr(allowed, c))) {
|
||||
if (enc_len+1 < MAX_URL_SIZE)
|
||||
enc[enc_len] = c;
|
||||
else
|
||||
break;
|
||||
enc_len++;
|
||||
} else {
|
||||
if (enc_len+3 < MAX_URL_SIZE)
|
||||
snprintf(&enc[enc_len], 4, "%%%02x", c);
|
||||
else
|
||||
break;
|
||||
enc_len += 3;
|
||||
}
|
||||
src++;
|
||||
}
|
||||
|
||||
enc[enc_len++] = '\0';
|
||||
if (enc_len <= component_size) {
|
||||
av_strlcpy(component, enc, component_size);
|
||||
} else {
|
||||
av_log(NULL, AV_LOG_ERROR,
|
||||
"Skipping percent-encoding for string '%s' since buffer is too small\n",
|
||||
component);
|
||||
}
|
||||
}
|
||||
|
||||
void av_url_split(char *proto, int proto_size,
|
||||
char *authorization, int authorization_size,
|
||||
char *hostname, int hostname_size,
|
||||
@ -3874,9 +3830,6 @@ void av_url_split(char *proto, int proto_size,
|
||||
av_strlcpy(hostname, p,
|
||||
FFMIN(ls + 1 - p, hostname_size));
|
||||
}
|
||||
|
||||
percent_encode_url(hostname, hostname_size, NULL);
|
||||
percent_encode_url(path, path_size, "/?");
|
||||
}
|
||||
|
||||
char *ff_data_to_hex(char *buff, const uint8_t *src, int s, int lowercase)
|
||||
|
Loading…
Reference in New Issue
Block a user