[asterisk-commits] russell: trunk r89484 - /trunk/channels/chan_unistim.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Nov 21 10:24:18 CST 2007


Author: russell
Date: Wed Nov 21 10:24:17 2007
New Revision: 89484

URL: http://svn.digium.com/view/asterisk?view=rev&rev=89484
Log:
Fix some code that was supposed to ensure that a buffer was terminated, but was
writing to the wrong byte.  Also, remove some non-thread safe test code.

(closes issue #11317)
Reported by: IgorG
Patches:
      unistim-2.patch uploaded by IgorG (license 20)
	  - additional changes by me

Modified:
    trunk/channels/chan_unistim.c

Modified: trunk/channels/chan_unistim.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_unistim.c?view=diff&rev=89484&r1=89483&r2=89484
==============================================================================
--- trunk/channels/chan_unistim.c (original)
+++ trunk/channels/chan_unistim.c Wed Nov 21 10:24:17 2007
@@ -223,8 +223,6 @@
 static unsigned int size_addr_from = sizeof(addr_from);
 /*! Receive buffer address */
 static unsigned char *buff;
-/*! Used for test */
-static unsigned char flag = 0;
 static int unistim_reloading = 0;
 AST_MUTEX_DEFINE_STATIC(unistim_reload_lock);
 AST_MUTEX_DEFINE_STATIC(usecnt_lock);
@@ -1383,22 +1381,6 @@
 
 }
 
-static void SendTest(struct unistimsession *pte)
-{
-	char text[TEXT_LENGTH_MAX];
-	int i;
-	if (unistimdebug)
-		ast_verbose("Sending test packet %x\n", flag);
-
-	sprintf(text, "first/last char0x%x/0x%x", flag, flag + TEXT_LENGTH_MAX - 1);
-	send_text(TEXT_LINE1, TEXT_NORMAL, pte, text);
-
-	for (i = 0; i < TEXT_LENGTH_MAX; i++) {
-		text[i] = flag++;
-	}
-	text[i] = '\0';
-	send_text(TEXT_LINE0, TEXT_NORMAL, pte, text);
-}
 static void send_date_time(struct unistimsession *pte)
 {
 	BUFFSEND;
@@ -3033,14 +3015,14 @@
 		fclose(*f);
 		return;
 	}
-	line[TEXT_LENGTH_MAX + 1] = 0;
+	line[sizeof(line) - 1] = '\0';
 	send_text(TEXT_LINE0, TEXT_NORMAL, pte, line);
 	if (fread(line, TEXT_LENGTH_MAX, 1, *f) != 1) {
 		display_last_error("Can't read callerid entry");
 		fclose(*f);
 		return;
 	}
-	line[TEXT_LENGTH_MAX + 1] = 0;
+	line[sizeof(line) - 1] = '\0';
 	ast_copy_string(pte->device->lst_cid, line, sizeof(pte->device->lst_cid));
 	send_text(TEXT_LINE1, TEXT_NORMAL, pte, line);
 	if (fread(line, TEXT_LENGTH_MAX, 1, *f) != 1) {
@@ -3048,7 +3030,7 @@
 		fclose(*f);
 		return;
 	}
-	line[TEXT_LENGTH_MAX + 1] = 0;
+	line[sizeof(line) - 1] = '\0';
 	send_text(TEXT_LINE2, TEXT_NORMAL, pte, line);
 	fclose(*f);
 
@@ -3427,12 +3409,7 @@
 		if (unistimdebug)
 			ast_verbose("Key pressed : keycode = 0x%.2x - current state : %d\n", keycode,
 						pte->state);
-		/* test key */
-		if (keycode == KEY_COMPUTR) {
-			SendTest(pte);
-			return;
-		}
-		/* End of the test section */
+
 		switch (pte->state) {
 		case STATE_INIT:
 			if (unistimdebug)
@@ -4413,16 +4390,16 @@
 			return 0;
 		}
 		memcpy(tmp, text + TEXT_LENGTH_MAX, TEXT_LENGTH_MAX);
-		tmp[TEXT_LENGTH_MAX + 1] = '\0';
+		tmp[sizeof(tmp) - 1] = '\0';
 		send_text(TEXT_LINE2, TEXT_NORMAL, pte, tmp);
 		return 0;
 	}
 	send_text(TEXT_LINE0, TEXT_NORMAL, pte, text);
 	memcpy(tmp, text + TEXT_LENGTH_MAX, TEXT_LENGTH_MAX);
-	tmp[TEXT_LENGTH_MAX + 1] = '\0';
+	tmp[sizeof(tmp) - 1] = '\0';
 	send_text(TEXT_LINE1, TEXT_NORMAL, pte, tmp);
 	memcpy(tmp, text + TEXT_LENGTH_MAX * 2, TEXT_LENGTH_MAX);
-	tmp[TEXT_LENGTH_MAX + 1] = '\0';
+	tmp[sizeof(tmp) - 1] = '\0';
 	send_text(TEXT_LINE2, TEXT_NORMAL, pte, tmp);
 	return 0;
 }




More information about the asterisk-commits mailing list