daniel@mirsa.inria.fr (Daniel Dardailler) (01/12/89)
Perhaps it's a little warped, but i think it's a valid bug :
the form 'hostname:number.screen' is parsed in lib/X/XConnDis.c
in such a way that if you give :
DISPLAY=myhost:zero
it works fine, like a right form DISPLAY=myhost:0.0
it's in fact tied to the use of atoi() function.
DISPLAY=myhost:zero.null and
DISPLAY=myhost:.
work also, but a declaration like
DISPLAY=myhost:a_string_of_lenght_superior_to_sixteen
gives a Memory Fault (or something abnormal, like the dump of
the requests send by the X client on stdout!)
If you take a look at the code, you will notice that after the parsing
of <hostname:>, there is a transfer in another buffer named numberbuf,
announced by a comment :
/*
* Build a string of the form <display-number>.<screen-number> in
* numberbuf, using ".0" as the default.
*/
the problem is that numberbuf length is 16 and there is no condition
like (i < 16) in the loop transfer.
--
Daniel Dardailler | Email : daniel@mirsa.inria.fr
BULL Centre de Sophia Antipolis | Phone : (33) 93 65 77 71
2004, Route des Lucioles | Telex : 97 00 50 F
06565 Valbonne CEDEX France | Fax : (33) 93 65 77 66