[gs-devel] Fix: make check_param_string() respect 'is_valid'

Ralph Giles giles at artifex.com
Tue Oct 29 15:31:20 PST 2002


This came up in debugging 630542. The macro param_check_string() is 
gsdparam.c simply wraps param_check_bytes, adding a buffer length 
argument calculated from strlen(). However, both take an 'is_valid' 
parameter, which in the case of the offending (gsdparam:638) is 
explicitly set to a NULL check. Thus is the string for comparison is 
NULL, param_check_string() will ignore the 'is_valid' argument and call 
strlen(NULL) resulting in a segfault.

The attached patch makes param_check_string() a function and has it 
check is_valid, turing the sefault into an error (if a typically opaque 
one).

The exact meaning of is_valid isn't documented, so perhaps a more 
aggressive second check for NULL pointer is reasonable. Comments?

Proposed log message:
Fix: param_check_string now checks is_valid before trying to calculate 
the length of the string in question.

  -r

-------------- next part --------------
A non-text attachment was scrubbed...
Name: param_check_string.diff
Type: application/octet-stream
Size: 1633 bytes
Desc: not available
Url : http://ghostscript.com/pipermail/gs-devel/attachments/20021029/fb5d3418/param_check_string.obj


More information about the gs-devel mailing list