Update of /usr/cvsroot/asterisk/apps
In directory mongoose.digium.com:/tmp/cvs-serv6743/apps

Modified Files:
        app_cut.c 
Log Message:
Fix off-by-one issue with sort (bug #5459)


Index: app_cut.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_cut.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- app_cut.c   15 Sep 2005 15:44:26 -0000      1.13
+++ app_cut.c   18 Oct 2005 16:48:19 -0000      1.14
@@ -93,7 +93,7 @@
 static int sort_internal(struct ast_channel *chan, char *data, char *buffer, 
size_t buflen)
 {
        char *strings, *ptrkey, *ptrvalue;
-       int count=1, count2;
+       int count=1, count2, element_count=0;
        struct sortable_keys *sortable_keys;
 
        memset(buffer, 0, buflen);
@@ -139,13 +139,13 @@
        qsort(sortable_keys, count, sizeof(struct sortable_keys), 
sort_subroutine);
 
        for (count2 = 0; count2 < count; count2++) {
-               strncat(buffer + strlen(buffer), sortable_keys[count2].key, 
buflen - strlen(buffer));
-               strncat(buffer + strlen(buffer), ",", buflen - strlen(buffer));
+               int blen = strlen(buffer);
+               if (element_count++) {
+                       strncat(buffer + blen, ",", buflen - blen - 1);
+               }
+               strncat(buffer + blen + 1, sortable_keys[count2].key, buflen - 
blen - 2);
        }
 
-       /* Remove trailing comma */
-       buffer[strlen(buffer) - 1] = '\0';
-
        return 0;
 }
 

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to