[Spread-cvs] cvs commit: spread/daemon config_parse.y
jonathan at spread.org
jonathan at spread.org
Fri Oct 24 17:51:41 EDT 2003
jonathan 03/10/24 17:51:41
Modified: daemon config_parse.y
Log:
Apply patch to force the spread.conf parser to reject machine names that
are too long. Use of these names can cause daemon crashes later when
clients connect.
Patch written and contributed by Mikhail Terekhov
Revision Changes Path
1.9 +11 -0 spread/daemon/config_parse.y
Index: config_parse.y
===================================================================
RCS file: /storage/cvsroot/spread/daemon/config_parse.y,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- config_parse.y 19 Jun 2003 22:45:11 -0000 1.8
+++ config_parse.y 24 Oct 2003 21:51:41 -0000 1.9
@@ -148,6 +148,13 @@
out_string[str_size-1] = '\0';
}
+#define PROC_NAME_CHECK( stoken ) { \
+ char strbuf[80]; \
+ if ( strlen((stoken)) >= MAX_PROC_NAME ) { \
+ snprintf(strbuf, 80, "Too long name(%d max): %s)\n", MAX_PROC_NAME, (stoken)); \
+ return (yyerror(strbuf)); \
+ } \
+ }
#define PROCS_CHECK( num_procs, stoken ) { \
char strbuf[80]; \
if ( (num_procs) >= MAX_PROCS_RING ) { \
@@ -399,6 +406,7 @@
Segmentparam : STRING IPADDR OPENBRACE Interfaceparams CLOSEBRACE
{
+ PROC_NAME_CHECK( $1.string );
PROCS_CHECK( num_procs, $1.string );
SEGMENT_CHECK( segments, $1.string );
SEGMENT_SIZE_CHECK( segment_procs, $1.string );
@@ -418,6 +426,7 @@
}
| STRING OPENBRACE Interfaceparams CLOSEBRACE
{
+ PROC_NAME_CHECK( $1.string );
PROCS_CHECK( num_procs, $1.string );
SEGMENT_CHECK( segments, $1.string );
SEGMENT_SIZE_CHECK( segment_procs, $1.string );
@@ -438,6 +447,7 @@
}
| STRING IPADDR
{
+ PROC_NAME_CHECK( $1.string );
PROCS_CHECK( num_procs, $1.string );
SEGMENT_CHECK( segments, $1.string );
SEGMENT_SIZE_CHECK( segment_procs, $1.string );
@@ -458,6 +468,7 @@
}
| STRING
{
+ PROC_NAME_CHECK( $1.string );
PROCS_CHECK( num_procs, $1.string );
SEGMENT_CHECK( segments, $1.string );
SEGMENT_SIZE_CHECK( segment_procs, $1.string );
More information about the Spread-cvs
mailing list