Index: /branches/rel_ag_9_4_5/avx/vtch/vtch-guest.c
===================================================================
--- /branches/rel_ag_9_4_5/avx/vtch/vtch-guest.c	(revision 20512)
+++ /branches/rel_ag_9_4_5/avx/vtch/vtch-guest.c	(working copy)
@@ -252,6 +252,7 @@
 		char* sn; 
 		char* rl;
 		char *lic;
+                char *bad_chars = "*$()/>&_ ";
 		int *p;
 
 		/* | model 1| SN 31| CC 4| VS 4| license string \n| */
@@ -281,6 +282,14 @@
 			syslog(LOG_USER | LOG_INFO, "vtch log no license string return from AVX");
 			return;
 		}
+                if (strpbrk(lic, bad_chars) != NULL) {
+        	        syslog(LOG_USER | LOG_INFO, "vtch log bad characters in license");
+			FILE *fp;
+			fp = fopen("/var/crash/avx_license.txt", "a");
+			fprintf(fp, "Bad license: %s\n", lic);
+			fclose(fp);
+			return;
+    	        }
 
 try_again:
 		touch_avx_license_vxag();
@@ -374,7 +383,16 @@
 		char buffer[BUFSIZE];
 		FILE* rfp = NULL;
 		struct vtch_msg msg_out;
+                char *bad_chars = "*$()/>&_ ";
 
+                if (strpbrk((char*)msg->data, bad_chars) != NULL) {
+        	        syslog(LOG_USER | LOG_INFO, "vtch log bad characters in license");
+			FILE *fp;
+			fp = fopen("/var/crash/avx_license.txt", "a");
+			fprintf(fp, "Bad license: %s\n", (char*)msg->data);
+			fclose(fp);
+			return;
+    	        }
 		memset(&msg_out, 0, sizeof(struct vtch_msg));
 		touch_avx_license_vxag();
 		snprintf(cmd, 
