<div dir="ltr"># uname -a<br>Linux nuc1 3.16.0-51-generic #69~14.04.1-Ubuntu SMP Wed Oct 7 15:32:41 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux<br><br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 21, 2015 at 12:13 PM, Ratin <span dir="ltr"><<a href="mailto:ratin3@gmail.com" target="_blank">ratin3@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Breakpoint 1, vaGetDisplay (native_dpy=0x7fffe4312870) at va_x11.c:154<br>154 {<br>(gdb) list<br>149 <br>150 <br>151 VADisplay vaGetDisplay (<br>152 Display *native_dpy /* implementation specific */<br>153 )<br>154 {<br>155 VADisplay dpy = NULL;<br>156 VADisplayContextP pDisplayContext;<br>157 <br>;;;<br>179 pDisplayContext->opaque = NULL; <br>177 pDisplayContext->vaDestroy = va_DisplayContextDestroy;<br>178 pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;<br>181 dpy = (VADisplay)pDisplayContext;<br>195 }<br>(gdb) p dpy<br>$2 = (VADisplay) 0x7fffe42d3160<br>(gdb) n <========================== stack unroll happens here<br>(gdb) list<br>935 pVAAPICNTX->vaDisplay = (VADisplay) <==== upper level code vaGetDisplay(pVAAPICNTX->mX11Display);<br>936 pVAAPICNTX->voWindow = pRendererParams->mWindow;<br>(gdb) p pVAAPICNTX->vaDisplay<br>$3 = (void *) 0xffffffffe42d3160<br><br><br>pVAAPICNTX is malloced struct ptr and one of the element of it is the vaDisplay declated like this : <br><br>typedef struct _VAAPICNTX<br>{<br> uint32_t VAContextID;<br> Window voWindow;<br> int voWidth;<br> int voHeight;<br>;;;<br>;;;<br> VADisplay vaDisplay;<br><br>;;;<br><br>;;;<br><br>}VAAPICNTX, *PVAAPICNTX; <br><br><br></div>As you can see, dpy above around line 195 in vaGetDisplay function is shown as 0x7fffe42d3160 but once the program counter comes out of that function and stack rolling happens, and context switches to upper level code, the assigned value has 0xffffffffe42d3160 (sign extended vs unsigned). What might cause this ? Next instance when I call vaInitialize with this vaDisplay, it craches:<br><br>Program received signal SIGSEGV, Segmentation fault.<br>vaDisplayIsValid (dpy=0xffffffffe42d3450) at va.c:102<br>102 return pDisplayContext && (pDisplayContext->vadpy_magic == VA_DISPLAY_MAGIC) && pDisplayContext->vaIsValid(pDisplayContext);<br><br><br><br></div>Any help/pointer would be appreciated. Thanks<br><br><br><br>gcc --version<br>gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4<br>Copyright (C) 2013 Free Software Foundation, Inc.<br>This is free software; see the source for copying conditions. There is NO<br>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<br><br>ls -la <a href="http://libc-2.19.so" target="_blank">libc-2.19.so</a><br>-rwxr-xr-x 1 root root 1845024 Dec 4 2014 <a href="http://libc-2.19.so" target="_blank">libc-2.19.so</a><br><br>ldd --version<br>ldd (Ubuntu EGLIBC 2.19-0ubuntu6.5) 2.19<br><br><br></div><div>Platform: <br><br></div>Ratin<br><div><div><br><div><br><br><br></div></div></div></div>
</blockquote></div><br></div>