On 24/11/15 08:55, Martin Storsjö wrote:
> On Tue, 24 Nov 2015, Luca Barbato wrote:
>
>> And forward the logging contexts when needed.
>> ---
>> libavformat/rtsp.c | 27 ++++++++++++++++++---------
>> libavformat/rtsp.h | 3 ++-
>> libavformat/rtspdec.c | 2 +-
>> 3 files changed, 21 insertions(+), 11 deletions(-)
>>
>> diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
>> index 5973f9b..57ce973 100644
>> --- a/libavformat/rtsp.c
>> +++ b/libavformat/rtsp.c
>> @@ -178,12 +178,19 @@ static void rtsp_parse_range_npt(const char *p,
>> int64_t *start, int64_t *end)
>> }
>> }
>>
>> -static int get_sockaddr(const char *buf, struct sockaddr_storage *sock)
>> +static int get_sockaddr(AVFormatContext *s,
>> + const char *buf, struct sockaddr_storage *sock)
>> {
>> struct addrinfo hints = { 0 }, *ai = NULL;
>> + int ret;
>> +
>> hints.ai_flags = AI_NUMERICHOST;
>> - if (getaddrinfo(buf, NULL, &hints, &ai))
>> + if ((ret = getaddrinfo(buf, NULL, &hints, &ai))) {
>> + av_log(s, AV_LOG_ERROR, "getaddrinfo(%s): %s\n",
>> + buf,
>> + gai_strerror(ret));
>> return -1;
>> + }
>> memcpy(sock, ai->ai_addr, FFMIN(sizeof(*sock), ai->ai_addrlen));
>> freeaddrinfo(ai);
>> return 0;
>> @@ -391,7 +398,7 @@ static void sdp_parse_line(AVFormatContext *s,
>> SDPParseState *s1,
>> if (strcmp(buf1, "IP4") && strcmp(buf1, "IP6"))
>> return;
>> get_word_sep(buf1, sizeof(buf1), "/", &p);
>> - if (get_sockaddr(buf1, &sdp_ip))
>> + if (get_sockaddr(s, buf1, &sdp_ip))
>> return;
>> ttl = 16;
>> if (*p == '/') {
>> @@ -853,7 +860,8 @@ static void rtsp_parse_range(int *min_ptr, int
>> *max_ptr, const char **pp)
>> }
>>
>> /* XXX: only one transport specification is parsed */
>> -static void rtsp_parse_transport(RTSPMessageHeader *reply, const char
>> *p)
>> +static void rtsp_parse_transport(AVFormatContext *s,
>> + RTSPMessageHeader *reply, const char
>> *p)
>> {
>> char transport_protocol[16];
>> char profile[16];
>> @@ -945,7 +953,7 @@ static void rtsp_parse_transport(RTSPMessageHeader
>> *reply, const char *p)
>> if (*p == '=') {
>> p++;
>> get_word_sep(buf, sizeof(buf), ";,", &p);
>> - get_sockaddr(buf, &th->destination);
>> + get_sockaddr(s, buf, &th->destination);
>> }
>> } else if (!strcmp(parameter, "source")) {
>> if (*p == '=') {
>> @@ -1032,7 +1040,8 @@ static void rtsp_parse_rtp_info(RTSPState *rt,
>> const char *p)
>> handle_rtp_info(rt, url, seq, rtptime);
>> }
>>
>> -void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf,
>> +void ff_rtsp_parse_line(AVFormatContext *s,
>> + RTSPMessageHeader *reply, const char *buf,
>> RTSPState *rt, const char *method)
>> {
>> const char *p;
>> @@ -1049,7 +1058,7 @@ void ff_rtsp_parse_line(RTSPMessageHeader
>> *reply, const char *buf,
>> } else if (av_stristart(p, "Content-Length:", &p)) {
>> reply->content_length = strtol(p, NULL, 10);
>> } else if (av_stristart(p, "Transport:", &p)) {
>> - rtsp_parse_transport(reply, p);
>> + rtsp_parse_transport(s, reply, p);
>> } else if (av_stristart(p, "CSeq:", &p)) {
>> reply->seq = strtol(p, NULL, 10);
>> } else if (av_stristart(p, "Range:", &p)) {
>> @@ -1178,7 +1187,7 @@ start:
>> request = 1;
>> }
>> } else {
>> - ff_rtsp_parse_line(reply, p, rt, method);
>> + ff_rtsp_parse_line(s, reply, p, rt, method);
>> av_strlcat(rt->last_reply, p, sizeof(rt->last_reply));
>> av_strlcat(rt->last_reply, "\n", sizeof(rt->last_reply));
>> }
>> @@ -2258,7 +2267,7 @@ static int sdp_read_header(AVFormatContext *s)
>>
>> /* open each RTP stream */
>> for (i = 0; i < rt->nb_rtsp_streams; i++) {
>> - char namebuf[50];
>> + char namebuf[50] = "\0";
>> rtsp_st = rt->rtsp_streams[i];
>>
>
> This seems unrelated to the rest of the patch (and as far as I can see,
> after patch 1/4, it shouldn't be necessary either?) - the rest looks good.
Yes, a leftover...
lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel