Tk Source Code

View Ticket
Login
Ticket UUID: 84fe25065c199b0ee9d9f24a92bfb3f76905d132
Title: Call non-legacy Tk_ImageStringWriteProc using correct function pointer type
Type: Patch Version: 8.6.13
Submitter: chrstphrchvz Created on: 2023-10-15 15:23:59
Subsystem: 41. Photo Images Assigned To: fvogel
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2023-10-28 08:15:30
Resolution: Fixed Closed By: fvogel
    Closed on: 2023-10-28 08:15:30
Description:

See attached patch. I am not aware why an extra argument was being passed (which has been done since the original patch submission: https://groups.google.com/g/comp.lang.tcl/c/2sChBs2OjcU/m/bBCDLS_VkVcJ). UBSan -fsanitize=function error triggered by imgPhoto-10.2:

tk/generic/tkImgPhoto.c:793:15: runtime error: call to function ImgStringWrite through pointer to incorrect function type 'int (*)(struct Tcl_Interp *, struct Tcl_Obj *, struct Tk_PhotoImageBlock *, void *)'
tkImgPhoto.c:3988: note: ImgStringWrite defined here
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior tk/generic/tkImgPhoto.c:793:15 in 

User Comments: fvogel added on 2023-10-28 08:15:30:
Thank you! Now merged in core-8-6-branch and trunk.

Attachments: