All pastes #984552 Raw Edit

Mine

public text v1 · immutable
·published 2008-04-14 11:40 UTC
rendered paste body
--- 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