Browse Source

lavf/avio: check that the protocol supports the open mode.

Fix trac ticket #2139.
tags/n1.2
Nicolas George 13 years ago
parent
commit
3d7f4f8726
1 changed files with 10 additions and 0 deletions
  1. +10
    -0
      libavformat/avio.c

+ 10
- 0
libavformat/avio.c View File

@@ -119,6 +119,16 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up,
if (up->flags & URL_PROTOCOL_FLAG_NETWORK && !ff_network_init())
return AVERROR(EIO);
#endif
if ((flags & AVIO_FLAG_READ) && !up->url_read) {
av_log(NULL, AV_LOG_ERROR,
"Impossible to open the '%s' protocol for reading\n", up->name);
return AVERROR(EIO);
}
if ((flags & AVIO_FLAG_WRITE) && !up->url_write) {
av_log(NULL, AV_LOG_ERROR,
"Impossible to open the '%s' protocol for writing\n", up->name);
return AVERROR(EIO);
}
uc = av_mallocz(sizeof(URLContext) + strlen(filename) + 1);
if (!uc) {
err = AVERROR(ENOMEM);


Loading…
Cancel
Save