diff options
Diffstat (limited to 'xc/lib/Xdmcp/RA16.c')
-rw-r--r-- | xc/lib/Xdmcp/RA16.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/xc/lib/Xdmcp/RA16.c b/xc/lib/Xdmcp/RA16.c index 642b70dec..76fafa6bb 100644 --- a/xc/lib/Xdmcp/RA16.c +++ b/xc/lib/Xdmcp/RA16.c @@ -1,5 +1,5 @@ /* - * $TOG: RA16.c /main/7 1998/06/25 16:26:16 kaleb $ + * $Xorg: RA16.c,v 1.4 2000/08/17 19:45:48 cpqbld Exp $ * * Copyright 1989, 1998 The Open Group @@ -35,8 +35,14 @@ XdmcpReadARRAY16 (buffer, array) { int i; - if (!XdmcpReadCARD8 (buffer, &array->length)) + if (!XdmcpReadCARD8 (buffer, &array->length)) { + + /* Must set array->data to NULL to guarantee safe call of + * XdmcpDisposeARRAY*(array) (which calls Xfree(array->data)); + * see defect 7329 */ + array->data = 0; return FALSE; + } if (!array->length) { array->data = NULL; |