--- start_kdeinit.c (revision 793519) +++ start_kdeinit.c (working copy) @@ -94,15 +94,15 @@ int main(int argc, char **argv) close( pipes[ 0 ] ); /* read original environment passed by start_kdeinit_wrapper */ if( read( 0, header, 7 ) == 7 && strncmp( header, "environ", 7 ) == 0 ) { - int count; - if( read( 0, &count, sizeof( int )) == sizeof( int )) { + unsigned count; + if( read( 0, &count, sizeof( unsigned )) == sizeof( unsigned ) && count < 65535) { char** env = malloc(( count + 1 ) * sizeof( char* )); int ok = 1; for( i = 0; i < count && ok; ++i ) { - int len; - if( read( 0, &len, sizeof( int )) == sizeof( int )) { + unsigned len; + if( read( 0, &len, sizeof( unsigned )) == sizeof( unsigned ) && len < 4096) { env[ i ] = malloc( len + 1 ); if( read( 0, env[ i ], len ) == len ) { env[ i ][ len ] = '\0'; dmueller@oldboy:~/src/kde/3.5/kdelibs/kinit> make