summaryrefslogtreecommitdiff
path: root/ffmpeg/libavformat/rtmphttp.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/libavformat/rtmphttp.c')
-rw-r--r--ffmpeg/libavformat/rtmphttp.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/ffmpeg/libavformat/rtmphttp.c b/ffmpeg/libavformat/rtmphttp.c
index 3a51f7c..0334ba5 100644
--- a/ffmpeg/libavformat/rtmphttp.c
+++ b/ffmpeg/libavformat/rtmphttp.c
@@ -85,14 +85,15 @@ static int rtmp_http_send_cmd(URLContext *h, const char *cmd)
static int rtmp_http_write(URLContext *h, const uint8_t *buf, int size)
{
RTMP_HTTPContext *rt = h->priv_data;
- void *ptr;
if (rt->out_size + size > rt->out_capacity) {
+ int err;
rt->out_capacity = (rt->out_size + size) * 2;
- ptr = av_realloc(rt->out_data, rt->out_capacity);
- if (!ptr)
- return AVERROR(ENOMEM);
- rt->out_data = ptr;
+ if ((err = av_reallocp(&rt->out_data, rt->out_capacity)) < 0) {
+ rt->out_size = 0;
+ rt->out_capacity = 0;
+ return err;
+ }
}
memcpy(rt->out_data + rt->out_size, buf, size);
@@ -112,7 +113,7 @@ static int rtmp_http_read(URLContext *h, uint8_t *buf, int size)
if (ret < 0 && ret != AVERROR_EOF)
return ret;
- if (ret == AVERROR_EOF) {
+ if (!ret || ret == AVERROR_EOF) {
if (rt->finishing) {
/* Do not send new requests when the client wants to
* close the connection. */
@@ -226,7 +227,7 @@ static int rtmp_http_open(URLContext *h, const char *uri, int flags)
/* read the server reply which contains a unique ID */
for (;;) {
ret = ffurl_read(rt->stream, rt->client_id + off, sizeof(rt->client_id) - off);
- if (ret == AVERROR_EOF)
+ if (!ret || ret == AVERROR_EOF)
break;
if (ret < 0)
goto fail;