OSDN Git Service

mov: Double-check that alias path is not an absolute path
authorVittorio Giovara <vittorio.giovara@gmail.com>
Tue, 7 Apr 2015 13:06:05 +0000 (15:06 +0200)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Sun, 19 Apr 2015 21:50:24 +0000 (22:50 +0100)
nlvl_to and nlvl_from can be set to 1 if both alias and target files
are in the same directory, so actually check the first character of the
string. We can do this because MacOS filepaths (alis type 2) are always
converted to UNIX filepaths (alis type 18).

libavformat/mov.c

index 2704dfb..70fa1e0 100644 (file)
@@ -2301,7 +2301,7 @@ static int mov_open_dref(AVIOContext **pb, char *src, MOVDref *ref,
 {
     /* try relative path, we do not try the absolute because it can leak information about our
        system to an attacker */
-    if (ref->nlvl_to > 0 && ref->nlvl_from > 0) {
+    if (ref->nlvl_to > 0 && ref->nlvl_from > 0 && ref->path[0] != '/') {
         char filename[1024];
         char *src_path;
         int i, l;