On 04/24/2012 12:05 PM, Michal Privoznik wrote:
On 24.04.2012 17:52, Michal Privoznik wrote:
Self NACK; It turned out to be race because it's still reproducible in
some cases: if(virPortProfile) evaluates to true; however gdb still
catches SIGSEGV in memcpy(). Meanwhile, something free()
Currently, we are calling memcpy(virtPortProfile, ...) unconditionally.
Which means if virtPortProfile is NULL we SIGSEGV. Therefore, add check
to call memcpy() conditionally.
(gdb) bt
#0 virNetDevMacVLanVPortProfileRegisterCallback (ifname=0x73f1ee60
macvtap0, macaddress=0x7fffe8096e34 RT,
On 24.04.2012 17:52, Michal Privoznik wrote:
Currently, we are calling memcpy(virtPortProfile, ...) unconditionally.
Which means if virtPortProfile is NULL we SIGSEGV. Therefore, add check
to call memcpy() conditionally.
(gdb) bt
#0 virNetDevMacVLanVPortProfileRegisterCallback
On Tue, Apr 24, 2012 at 05:52:19PM +0200, Michal Privoznik wrote:
Currently, we are calling memcpy(virtPortProfile, ...) unconditionally.
Which means if virtPortProfile is NULL we SIGSEGV. Therefore, add check
to call memcpy() conditionally.
(gdb) bt
#0
On 04/24/2012 12:05 PM, Michal Privoznik wrote:
On 24.04.2012 17:52, Michal Privoznik wrote:
Currently, we are calling memcpy(virtPortProfile, ...) unconditionally.
Actually, we're not - right at the top of the function it already has:
if (virtPortProfile virNetLinkEventServiceIsRunning)
On 04/24/2012 12:05 PM, Michal Privoznik wrote:
On 24.04.2012 17:52, Michal Privoznik wrote:
Currently, we are calling memcpy(virtPortProfile, ...) unconditionally.
Which means if virtPortProfile is NULL we SIGSEGV. Therefore, add check
to call memcpy() conditionally.
(gdb) bt
#0