Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,062
    • Issues 3,062
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 993
    • Merge requests 993
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MesaMesa
  • mesamesa
  • Issues
  • #315
Closed
Open
Issue created Sep 18, 2019 by Bugzilla Migration User@bugzilla-migration

SIGSEGV libX11 src/ImUtil.c:733

Submitted by Vinson Lee

Assigned to mes..@..op.org

Link to original bug (#87925)

Description

$ pkg-config --modversion x11 1.6.2

Run piglit test glx-tfp on Mesa Software Rasterizer.

$ ./bin/glx-tfp -auto Segmentation fault (core dumped)

(gdb) bt
#0  _XPutPixel32 (ximage=0x17b0200, x=0, y=<optimized out>, pixel=16711680) at ../../src/ImUtil.c:733
#1  0x00007f6fe63e7cd3 in _XSetImage (srcimg=srcimg@entry=0x17afc50, dstimg=dstimg@entry=0x17b0200, x=0, x@entry=2, y=0, y@entry=24838656) at ../../src/ImUtil.c:949
#2  0x00007f6fe63e3b66 in XGetSubImage (dpy=<optimized out>, d=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>, 
    plane_mask=plane_mask@entry=18446744073709551615, format=format@entry=2, dest_image=dest_image@entry=0x17b0200, dest_x=dest_x@entry=0, dest_y=dest_y@entry=0)
    at ../../src/GetImage.c:129
#3  0x00007f6fe6739ede in swrastGetImage (read=<optimized out>, x=<optimized out>, y=<optimized out>, w=<optimized out>, h=<optimized out>, data=<optimized out>, 
    loaderPrivate=0x17afe50) at drisw_glx.c:198
#4  0x00007f6fe1ad1fc4 in swrastSetTexBuffer2 (pDRICtx=<optimized out>, target=<optimized out>, texture_format=8409, dPriv=0x17b0290) at swrast.c:103
#5  0x0000000000401b13 in draw_pixmap (pixmap=75497480, x=32, y=32, w=64, h=64) at piglit/tests/glx/glx-tfp.c:143
#6  0x0000000000401cc4 in draw (dpy=0x15a1010) at piglit/tests/glx/glx-tfp.c:175
#7  0x00007f6fe6a1cd11 in piglit_glx_event_loop (dpy=0x15a1010, draw=0x401be2 <draw>) at piglit/tests/util/piglit-glx-util.c:210
#8  0x0000000000402310 in main (argc=2, argv=0x7fff75933008) at piglit/tests/glx/glx-tfp.c:355
(gdb) frame 0
#0  _XPutPixel32 (ximage=0x17b0200, x=0, y=<optimized out>, pixel=16711680) at ../../src/ImUtil.c:733
733	in ../../src/ImUtil.c
(gdb) print addr
$1 = (unsigned char *) 0x0
(gdb) print ximage->data
$2 = 0x0

libX11/src/ImUtil.c 721 static int _XPutPixel32 ( 722 register XImage *ximage, 723 int x, 724 int y, 725 unsigned long pixel) 726 { 727 unsigned char *addr; 728
729 if ((ximage->format == ZPixmap) && (ximage->bits_per_pixel == 32)) { 730 addr = &((unsigned char )ximage->data) 731 [y * ximage->bytes_per_line + (x << 2)]; 732 if (((const char *)&byteorderpixel) == ximage->byte_order) 733 *((CARD32 *)addr) = pixel; 734 else if (ximage->byte_order == MSBFirst) { 735 addr[0] = pixel >> 24; 736 addr[1] = pixel >> 16; 737 addr[2] = pixel >> 8; 738 addr[3] = pixel; 739 } else { 740 addr[3] = pixel >> 24; 741 addr[2] = pixel >> 16; 742 addr[1] = pixel >> 8; 743 addr[0] = pixel; 744 } 745 return 1; 746 } else { 747 _XInitImageFuncPtrs(ximage); 748 return XPutPixel(ximage, x, y, pixel); 749 } 750 }

Version: 10.2

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking