Am 27.10.2011 09:55, schrieb Jamey Sharp:
> On Thu, Oct 27, 2011 at 09:15:54AM +0200, walter harms wrote:
>> Am 27.10.2011 06:21, schrieb Peter Hutterer:
>>> +void *_XGetRequest(Display *dpy, CARD8 type, size_t len)
>>> +{
>>> +    xReq *req;
>>> +
>>> +    WORD64ALIGN
>>> +
>>> +    if (dpy->bufptr + len > dpy->bufmax)
>>> +   _XFlush(dpy);
>>> +
>>> +    if (len % 4)
>>> +   fprintf(stderr,
>>> +           "Xlib: request %d length %zd not a multiple of 4.\n",
>>> +           type, len);
>>
>> Does it make sense to continue here ?
>> perhaps you want a add a return NULL ?
> 
> It doesn't make sense to continue, but there's no way to report the
> error that any caller can handle. If you return NULL here, the caller is
> guaranteed to segfault.
> 
> Since these errors are already possible today, but aren't being even
> noticed, I think Peter's choice of a printf is the best we can do. At
> least it allows the possibility of somebody noticing the bug.
> 
> It'd be nice if we could get more information than the minor opcode for
> extension requests, but nothing else is immediately obvious to me here.
> 
what is bad with segfault ? the macro version would more or less make
sure that len % 4 is 0 by using sizeof. Everybody else has a serious problem.
Better you stop here (by returning NULL) than at a random place.

re,
 wh

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to