[x265] [PATCH] api: fix for crash in x265_api_query caused by function type casting error

Steve Borho steve at borho.org
Tue Jun 2 19:56:19 CEST 2015


On 06/02, albert.j.wang at gmail.com wrote:
> # HG changeset patch
> # User awang <albert.wang at harmonicinc.com>
> # Date 1433236884 -28800
> #      Tue Jun 02 17:21:24 2015 +0800
> # Node ID 3152f79525bbd4b71c82eea16c4cdd4c69b06473
> # Parent  0f0d88319f7cc96661eef3c3dcc1befcf60354f3
> api: fix for crash in x265_api_query caused by function type casting error
> 
> In x265_api_query, after retrieving the function pointer of x265_api_query from
> external DLL, it is then incorrectly type cast into x265_api_get function, the
> patch is intended for this fix.

indeed, thanks!

> diff -r 0f0d88319f7c -r 3152f79525bb source/encoder/api.cpp
> --- a/source/encoder/api.cpp	Tue Jun 02 12:35:53 2015 +0530
> +++ b/source/encoder/api.cpp	Tue Jun 02 17:21:24 2015 +0800
> @@ -286,6 +286,7 @@
>  };
>  
>  typedef const x265_api* (*api_get_func)(int bitDepth);
> +typedef const x265_api* (*api_query_func)(int bitDepth, int apiVersion, int* err);
>  
>  #define xstr(s) str(s)
>  #define str(s) #s
> @@ -383,18 +384,18 @@
>          if (h)
>          {
>              e = X265_API_QUERY_ERR_FUNC_NOT_FOUND;
> -            api_get_func get = (api_get_func)GetProcAddress(h, method);
> -            if (get)
> -                api = get(0);
> +            api_query_func query = (api_query_func)GetProcAddress(h, method);
> +            if (query)
> +                api = query(bitDepth,apiVersion,err);
>          }
>  #else
>          void* h = dlopen(libname, RTLD_LAZY | RTLD_LOCAL);
>          if (h)
>          {
>              e = X265_API_QUERY_ERR_FUNC_NOT_FOUND;
> -            api_get_func get = (api_get_func)dlsym(h, method);
> -            if (get)
> -                api = get(0);
> +            api_query_func query = (api_query_func)dlsym(h, method);
> +            if (query)
> +                api = query(bitDepth,apiVersion,err);
>          }
>  #endif
>  
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel

-- 
Steve Borho


More information about the x265-devel mailing list