lavfi/frei0r: add additional trailing slash in FREI0R_PATH paths
authorStefano Sabatini <stefasab@gmail.com>
Mon, 29 Oct 2012 17:44:27 +0000 (18:44 +0100)
committerStefano Sabatini <stefasab@gmail.com>
Tue, 13 Nov 2012 21:54:29 +0000 (22:54 +0100)
Allow to accept paths with no ending trailing slash.

Based on a patch by rogerdpack <rogerpack2005@gmail.com>.

libavfilter/vf_frei0r.c

index 2935394..0ea7c04 100644 (file)
@@ -230,9 +230,18 @@ static av_cold int frei0r_init(AVFilterContext *ctx,
         const char *separator = ":";
 #endif
         char *p, *ptr = NULL;
-        for (p = path; p = av_strtok(p, separator, &ptr); p = NULL)
-            if (frei0r->dl_handle = load_path(ctx, p, dl_name))
+        for (p = path; p = av_strtok(p, separator, &ptr); p = NULL) {
+            /* add additional trailing slash in case it is missing */
+            char *p1 = av_asprintf("%s/", p);
+            if (!p1) {
+                av_free(path);
+                return AVERROR(ENOMEM);
+            }
+            frei0r->dl_handle = load_path(ctx, p1, dl_name);
+            av_free(p1);
+            if (frei0r->dl_handle)
                 break;
+        }
         av_free(path);
     }
     if (!frei0r->dl_handle && (path = getenv("HOME"))) {