2012-02-01 [pawel] 3.8.0cvs20
authorPaweł Pękala <c0rn@gazeta.pl>
Wed, 1 Feb 2012 18:26:56 +0000 (18:26 +0000)
committerPaweł Pękala <c0rn@gazeta.pl>
Wed, 1 Feb 2012 18:26:56 +0000 (18:26 +0000)
* src/jpilot.c
* src/mutt.c
* src/pine.c
* src/procmsg.c
* src/vcard.c
* src/gtk/sslcertwindow.c
More strncat boundary checks

ChangeLog
PATCHSETS
configure.ac
src/gtk/sslcertwindow.c
src/jpilot.c
src/mutt.c
src/pine.c
src/procmsg.c
src/vcard.c

index 6628738..af10b22 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2012-02-01 [pawel]     3.8.0cvs20
+
+       * src/jpilot.c
+       * src/mutt.c
+       * src/pine.c
+       * src/procmsg.c
+       * src/vcard.c
+       * src/gtk/sslcertwindow.c
+               More strncat boundary checks
+
 2012-01-31 [wwp]       3.8.0cvs19
 
        * src/gtk/gtkutils.c
index a80b71c..869168b 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.27.2.59 -r 1.27.2.60 src/addr_compl.c;  ) > 3.8.0cvs17.patchset
 ( cvs diff -u -r 1.1.4.28 -r 1.1.4.29 src/gtk/progressdialog.c;  cvs diff -u -r 1.1.4.16 -r 1.1.4.17 src/gtk/progressdialog.h;  cvs diff -u -r 1.149.2.104 -r 1.149.2.105 src/inc.c;  cvs diff -u -r 1.17.2.61 -r 1.17.2.62 src/send_message.c;  ) > 3.8.0cvs18.patchset
 ( cvs diff -u -r 1.5.2.101 -r 1.5.2.102 src/gtk/gtkutils.c;  ) > 3.8.0cvs19.patchset
+( cvs diff -u -r 1.18.2.33 -r 1.18.2.34 src/jpilot.c;  cvs diff -u -r 1.6.10.19 -r 1.6.10.20 src/mutt.c;  cvs diff -u -r 1.6.2.18 -r 1.6.2.19 src/pine.c;  cvs diff -u -r 1.150.2.120 -r 1.150.2.121 src/procmsg.c;  cvs diff -u -r 1.14.2.21 -r 1.14.2.22 src/vcard.c;  cvs diff -u -r 1.9.2.32 -r 1.9.2.33 src/gtk/sslcertwindow.c;  ) > 3.8.0cvs20.patchset
index ea6cc0c..b1554f7 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=8
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=19
+EXTRA_VERSION=20
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 3ed7d54..fb28591 100644 (file)
@@ -94,8 +94,8 @@ static GtkWidget *cert_presenter(SSLCertificate *cert)
                tmp = g_malloc(BUFFSIZE);
                if (gnutls_x509_crt_get_issuer_dn_by_oid(cert->x509_cert, 
                        GNUTLS_OID_X520_COUNTRY_NAME, 0, 0, tmp, &n) == 0) {
-                       strncat(issuer_location, ", ", BUFFSIZE-strlen(issuer_location));
-                       strncat(issuer_location, tmp, BUFFSIZE-strlen(issuer_location));
+                       strncat(issuer_location, ", ", BUFFSIZE-strlen(issuer_location)-1);
+                       strncat(issuer_location, tmp, BUFFSIZE-strlen(issuer_location)-1);
                }
                g_free(tmp);
        }
@@ -121,8 +121,8 @@ static GtkWidget *cert_presenter(SSLCertificate *cert)
                tmp = g_malloc(BUFFSIZE);
                if (gnutls_x509_crt_get_dn_by_oid(cert->x509_cert, 
                        GNUTLS_OID_X520_COUNTRY_NAME, 0, 0, tmp, &n) == 0) {
-                       strncat(subject_location, ", ", BUFFSIZE-strlen(subject_location));
-                       strncat(subject_location, tmp, BUFFSIZE-strlen(subject_location));
+                       strncat(subject_location, ", ", BUFFSIZE-strlen(subject_location)-1);
+                       strncat(subject_location, tmp, BUFFSIZE-strlen(subject_location)-1);
                }
                g_free(tmp);
        }
index 4e70d29..7a1902b 100644 (file)
@@ -1595,7 +1595,7 @@ GList *jpilot_get_all_persons( JPilotFile *pilotFile ) {
  */
 gchar *jpilot_find_pilotdb( void ) {
        const gchar *homedir;
-       gchar str[ WORK_BUFLEN ];
+       gchar str[ WORK_BUFLEN + 1 ];
        gint len;
        FILE *fp;
 
@@ -1610,9 +1610,9 @@ gchar *jpilot_find_pilotdb( void ) {
                        str[ ++len ] = '\0';
                }
        }
-       strncat( str, JPILOT_DBHOME_DIR, WORK_BUFLEN );
-       strncat( str, G_DIR_SEPARATOR_S, WORK_BUFLEN );
-       strncat( str, JPILOT_DBHOME_FILE, WORK_BUFLEN );
+       strncat( str, JPILOT_DBHOME_DIR, WORK_BUFLEN - strlen(str) );
+       strncat( str, G_DIR_SEPARATOR_S, WORK_BUFLEN - strlen(str) );
+       strncat( str, JPILOT_DBHOME_FILE, WORK_BUFLEN - strlen(str) );
 
        /* Attempt to open */
        if( ( fp = g_fopen( str, "rb" ) ) != NULL ) {
index 6c49fd5..58558e3 100644 (file)
@@ -533,7 +533,7 @@ gint mutt_import_data( MuttFile *muttFile, AddressCache *cache ) {
 */
 gchar *mutt_find_file( void ) {
        const gchar *homedir;
-       gchar str[ WORK_BUFLEN ];
+       gchar str[ WORK_BUFLEN + 1 ];
        gint len;
        FILE *fp;
 
@@ -548,7 +548,7 @@ gchar *mutt_find_file( void ) {
                        str[ ++len ] = '\0';
                }
        }
-       strncat( str, MUTT_HOME_FILE, WORK_BUFLEN );
+       strncat( str, MUTT_HOME_FILE, WORK_BUFLEN - strlen(str) );
 
        /* Attempt to open */
        if( ( fp = g_fopen( str, "rb" ) ) != NULL ) {
index 7a87558..a93c97b 100644 (file)
@@ -635,7 +635,7 @@ gint pine_import_data( PineFile *pineFile, AddressCache *cache ) {
  */
 gchar *pine_find_file( void ) {
        const gchar *homedir;
-       gchar str[ WORK_BUFLEN ];
+       gchar str[ WORK_BUFLEN + 1 ];
        gint len;
        FILE *fp;
 
@@ -650,7 +650,7 @@ gchar *pine_find_file( void ) {
                        str[ ++len ] = '\0';
                }
        }
-       strncat( str, PINE_HOME_FILE, WORK_BUFLEN );
+       strncat( str, PINE_HOME_FILE, WORK_BUFLEN - strlen(str) );
 
        /* Attempt to open */
        if( ( fp = g_fopen( str, "rb" ) ) != NULL ) {
index 5979ef7..dab25a9 100644 (file)
@@ -1147,7 +1147,8 @@ void procmsg_print_message(MsgInfo *msginfo, const gchar *cmdline)
        g_free(prtmp);
 
        g_strchomp(buf);
-       if (buf[strlen(buf) - 1] != '&') strncat(buf, "&", sizeof(buf));
+       if (buf[strlen(buf) - 1] != '&')
+               strncat(buf, "&", sizeof(buf) - strlen(buf) - 1);
        if (system(buf) == -1)
                g_warning("system(%s) failed.", buf);
 }
index c61baf9..808d57e 100644 (file)
@@ -561,7 +561,7 @@ GList *vcard_get_all_persons( VCardFile *cardFile ) {
 gchar *vcard_find_gnomecard( void ) {
        const gchar *homedir;
        gchar buf[ WORK_BUFLEN ];
-       gchar str[ WORK_BUFLEN ];
+       gchar str[ WORK_BUFLEN + 1 ];
        gchar *fileSpec;
        gint len, lenlbl, i;
        FILE *fp;
@@ -577,9 +577,9 @@ gchar *vcard_find_gnomecard( void ) {
                        str[ ++len ] = '\0';
                }
        }
-       strncat( str, GNOMECARD_DIR, WORK_BUFLEN );
-       strncat( str, G_DIR_SEPARATOR_S, WORK_BUFLEN );
-       strncat( str, GNOMECARD_FILE, WORK_BUFLEN );
+       strncat( str, GNOMECARD_DIR, WORK_BUFLEN - strlen(str) );
+       strncat( str, G_DIR_SEPARATOR_S, WORK_BUFLEN - strlen(str) );
+       strncat( str, GNOMECARD_FILE, WORK_BUFLEN - strlen(str) );
 
        fileSpec = NULL;
        if( ( fp = g_fopen( str, "rb" ) ) != NULL ) {