ayttm-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ayttm-commits] CVS: ayttm/src log_window.c,1.25,1.26


From: Colin Leroy <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/src log_window.c,1.25,1.26
Date: Mon, 31 Mar 2003 06:24:07 -0500

Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv14953/src

Modified Files:
        log_window.c 
Log Message:
fix negative length in strncpy


Index: log_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/log_window.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- log_window.c        26 Mar 2003 13:17:59 -0000      1.25
+++ log_window.c        31 Mar 2003 11:24:05 -0000      1.26
@@ -143,13 +143,18 @@
        p1 += strlen(_("Conversation started on "));
 
        /* if html tags are in the buffer, gotta strip the last two tags */
-       if ((p2 = strstr(read_buffer, "</B>")) != NULL) {
+       if ((p2 = strstr(read_buffer, "</B>")) != NULL && p2 > p1) {
+         printf("p2 %x p1 %x 2-1 %d\n",p2, p1, p2-p1);
          strncpy(date_buffer, p1, (p2 - p1) > 127 ? 127:(p2-p1));
          date_buffer[(p2 - p1) > 127 ? 127:(p2-p1)] = '\0';
        } else {
-         /* eww, c's string handling sucks */
-         strncpy(date_buffer, p1, (read_buffer + strlen(read_buffer)) - p1);
-         date_buffer[(read_buffer + strlen(read_buffer)) - p1 - 1] = '\0';
+         int len = (read_buffer + strlen(read_buffer)) - p1;
+         if (len > 127) len = 127;
+         if (len > 0) {
+                 /* eww, c's string handling sucks */
+                 strncpy(date_buffer, p1, (read_buffer + strlen(read_buffer)) 
- p1);
+                 date_buffer[(read_buffer + strlen(read_buffer)) - p1 - 1] = 
'\0';
+         }
        }
        
        p3[0] = date_buffer;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]