the latest changes in libdraw:

 Display*
 initdisplay(char *dev, char *win, void(*error)(Display*, char*))
 {
-       char buf[128], info[NINFO+1], *t, isnew;
+       char buf[NINFO+1], info[NINFO+1], *t, isnew;

this is wrong. the real bug is here:

        if((n=read(ctlfd, info, sizeof info)) < 12){
    Error2:
                close(ctlfd);
                goto Error1;
        }
        if(n==NINFO+1)
                n = NINFO;
-->     buf[n] = '\0';
        isnew = 0;

that should be:

info[n] = '\0';

--
cinap

Reply via email to