[asterisk-commits] anthonyl: branch anthonyl/escape-filter2 r47472 - /team/anthonyl/escape-filte...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri Nov 10 14:33:38 MST 2006


Author: anthonyl
Date: Fri Nov 10 15:33:37 2006
New Revision: 47472

URL: http://svn.digium.com/view/asterisk?view=rev&rev=47472
Log:
another update

Modified:
    team/anthonyl/escape-filter2/main/utils.c

Modified: team/anthonyl/escape-filter2/main/utils.c
URL: http://svn.digium.com/view/asterisk/team/anthonyl/escape-filter2/main/utils.c?view=diff&rev=47472&r1=47471&r2=47472
==============================================================================
--- team/anthonyl/escape-filter2/main/utils.c (original)
+++ team/anthonyl/escape-filter2/main/utils.c Fri Nov 10 15:33:37 2006
@@ -1005,28 +1005,36 @@
 	 int tamper = 0;
 	 char *p;
 
-	 p = ast_calloc(1,strlen(line));
-
+	 
+	 p = ast_calloc(1,strlen(line)+1);
+		
 	 if (!p)
 		 return NULL;
 	 
 	 for (i=0;i<strlen(line);i++) {
 		 if (line[i] == '\x1B') {					 
 			 if ( line[i+1] == '\x5b') {
-				 if (line[i+2] != 30 || line[i+2] != 33) {
-					 tamper = 1;
+				 switch (line[i+2]) {
+				 case '\x30':
+					 break;
+				 case '\x31':
+					 break;
+				 case '\x33':
+					 break;
+				 default:
+					 ast_log(LOG_WARNING, "Someone tried to pass malformed data through your terminal\n"); 
+					 tamper=1;
+					 break;
 				 }
-				 
-			 } else 
-				 tamper = 1;
-			 
+			 } else
+				 continue;
+
 		 }
+		 if (tamper)
+			 continue;
 		 p[ii] = line[i];
 		 ii++;
 	 }
- 
-	 if (tamper == 1) 
-		 p[0] = '\0';
-	 
+
 	 return p;
  }



More information about the asterisk-commits mailing list