Author: toad
Date: 2006-01-26 00:45:42 +0000 (Thu, 26 Jan 2006)
New Revision: 7933

Modified:
   trunk/freenet/src/freenet/node/TextModeClientInterface.java
   trunk/freenet/src/freenet/node/Version.java
Log:
384:
Filter escape codes in TMCI.GET: and also limit GET: output to 32kB.

Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-01-26 
00:18:57 UTC (rev 7932)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-01-26 
00:45:42 UTC (rev 7933)
@@ -150,9 +150,24 @@
                                FetchResult result = client.fetch(uri);
                                ClientMetadata cm = result.getMetadata();
                                System.out.println("Content MIME type: 
"+cm.getMIMEType());
+                               Bucket data = result.asBucket();
+                               // FIXME limit it above
+                               if(data.size() > 32*1024) {
+                                       System.err.println("Data is more than 
32K: "+data.size());
+                                       return;
+                               }
+                               byte[] dataBytes = 
BucketTools.toByteArray(data);
+                               boolean evil = false;
+                               for(int i=0;i<dataBytes.length;i++) {
+                                       // Look for escape codes
+                                       if(dataBytes[i] < 32) evil = true;
+                               }
+                               if(evil) {
+                                       System.err.println("Data may contain 
escape codes which could cause the terminal to run arbitrary commands! Save it 
to a file if you must with GETFILE:");
+                                       return;
+                               }
                                System.out.println("Data:\n");
-                               Bucket data = result.asBucket();
-                               BucketTools.copyTo(data, System.out, 
Long.MAX_VALUE);
+                               System.out.println(new String(dataBytes));
                                System.out.println();
                        } catch (FetchException e) {
                                System.out.println("Error: "+e.getMessage());

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-01-26 00:18:57 UTC (rev 
7932)
+++ trunk/freenet/src/freenet/node/Version.java 2006-01-26 00:45:42 UTC (rev 
7933)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       public static final int buildNumber = 383;
+       public static final int buildNumber = 384;

        /** Oldest build of Fred we will talk to */
        public static final int lastGoodBuild = 381;


Reply via email to