Backporting possible buffer overflow fix from Scott McKellar. STABLE_0_9
authormiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 11 Jul 2007 03:15:39 +0000 (03:15 +0000)
committermiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 11 Jul 2007 03:15:39 +0000 (03:15 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/branches/STABLE_0_9@1021 9efc2488-bf62-4759-914b-345cdb29e865

src/srfsh/srfsh.c

index 9887038..d7aba84 100644 (file)
@@ -120,19 +120,15 @@ int parse_error( char* words[] ) {
        if( ! words )
                return 0;
 
-
-       int i = 0;
-       char* current;
-       char buffer[256];
-       memset(buffer, 0, 256);
-       while( (current=words[i++]) ) {
-               strcat(buffer, current);
-               strcat(buffer, " ");
+       growing_buffer * gbuf = buffer_init( 64 );
+       buffer_add( gbuf, *words );
+       while( *++words ) {
+               buffer_add( gbuf, " " );
+               buffer_add( gbuf, *words );
        }
-       if( ! buffer || strlen(buffer) < 1 ) 
-               printf("\n");
+       fprintf( stderr, "???: %s\n", gbuf->buf );
+       buffer_free( gbuf );
 
-       fprintf( stderr, "???: %s\n", buffer );
        return 0;
 
 }