diff --git a/configure b/configure index b1433359e6..1954c54487 100755 --- a/configure +++ b/configure @@ -1410,7 +1410,6 @@ HAVE_LIST=" soundcard_h strerror_r strptime - strtok_r struct_addrinfo struct_group_source_req struct_ip_mreq_source @@ -2018,9 +2017,9 @@ boxblur_filter_deps="gpl" cropdetect_filter_deps="gpl" delogo_filter_deps="gpl" drawtext_filter_deps="libfreetype" -frei0r_filter_deps="frei0r dlopen strtok_r" +frei0r_filter_deps="frei0r dlopen" frei0r_filter_extralibs='$ldl' -frei0r_src_filter_deps="frei0r dlopen strtok_r" +frei0r_src_filter_deps="frei0r dlopen" frei0r_src_filter_extralibs='$ldl' hqdn3d_filter_deps="gpl" interlace_filter_deps="gpl" @@ -3855,7 +3854,6 @@ check_func_headers malloc.h _aligned_malloc && enable aligned_malloc check_func setrlimit check_func strerror_r check_func strptime -check_func strtok_r check_func sched_getaffinity check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)" check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()" diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c index fde6e1a96c..c9699677c8 100644 --- a/libavfilter/vf_frei0r.c +++ b/libavfilter/vf_frei0r.c @@ -232,12 +232,18 @@ static av_cold int frei0r_init(AVFilterContext *ctx, } /* see: http://piksel.org/frei0r/1.2/spec/1.2/spec/group__pluglocations.html */ - if ((path = av_strdup(getenv("FREI0R_PATH")))) { - char *p, *ptr = NULL; - for (p = path; p = strtok_r(p, ":", &ptr); p = NULL) - if (s->dl_handle = load_path(ctx, p, dl_name)) - break; - av_free(path); + if (path = getenv("FREI0R_PATH")) { + while(*path) { + char *ptr = av_get_token((const char **)&path, ":"); + if (!ptr) + return AVERROR(ENOMEM); + s->dl_handle = load_path(ctx, ptr, dl_name); + av_freep(&ptr); + if (s->dl_handle) + break; /* found */ + if (*path) + path++ /* skip ':' */ + } } if (!s->dl_handle && (path = getenv("HOME"))) { char prefix[1024];