Line 2720 contains:
     if (dfb_core_is_master( dfb_fbdev->core )) {
          fbdev_ioctl_call_handler( 1, request, arg, NULL, 0, &ret );
          return ret;
     }
I think this should instead be:
     if (dfb_core_is_master( dfb_fbdev->core )) {
          fbdev_ioctl_call_handler( 1, request, arg, NULL, 0, &ret );
          return ret ? -1 : 0;
     }
This bug results in a Framebuffer driver error code not being detected as an 
error by callers of FBDEV_IOCTL.  For example, without the bug fix, the "if" 
statement below (from fbdev.c line 1875) is not entered:

     if (FBDEV_IOCTL( FBIOPUT_VSCREENINFO, &var ) < 0) {
          int erno = errno;
          dfb_gfxcard_unlock();
          D_DEBUG_AT( FBDev_Mode, "  => FAILED!\n" );
          return errno2result( erno );
     }
By the way, how do I access the directfb bug tracking system?  The link to it 
on http://www.directfb.org/ go nowhere.

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to