<AWT Dev> RFR: [XXS] 8228468: awt_Robot.c : format string contains 0 within the string body - was : RE: awt_Robot.c : format string contains '\0' within the string body

Baesken, Matthias matthias.baesken at sap.com
Mon Jul 22 08:26:24 UTC 2019

Hi Sergey, thanks for the reply !

I created a bug + webrev . Please review .



Best regards, Matthias

From: Sergey Bylokhov <sergey.bylokhov at oracle.com>
Sent: Freitag, 19. Juli 2019 23:06
To: Baesken, Matthias <matthias.baesken at sap.com>
Cc: awt-dev at openjdk.java.net; 2d-dev at openjdk.java.net
Subject: Re: <AWT Dev> awt_Robot.c : format string contains '\0' within the string body

Hi, Matthias.

I think it is unneeded and can be removed.

----- matthias.baesken at sap.com<mailto:matthias.baesken at sap.com> wrote:
Hello,   is there a special reason to put  a  '\0'  at the end of  the   “atom_name”  - parameter  of the XInternAtom call in  isXCompositeDisplay  ?

jdk/src/java.desktop/unix/native/libawt_xawt/awt/awt_Robot.c :

static jboolean isXCompositeDisplay(Display *display, int screenNumber) {

    char NET_WM_CM_Sn[25];
    snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0", screenNumber);

    Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);

I think on UNIX  the snprintf implementations  are conforming and zero-terminate  ( exception was VS before VS2015   but this  is  unix/native  code ).

Reason why I ask is this warning we  have  in our AIX xlc16/xlclang  build  :

/jdk/src/java.desktop/unix/native/libawt_xawt/awt/awt_Robot.c:153:65: warning: format string contains '\0' within the string body [-Wformat]
    snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0", screenNumber);

Thanks, Matthias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/awt-dev/attachments/20190722/6d19b05e/attachment.html>

More information about the awt-dev mailing list