[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