talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit eaaf23d5c8617247b09111d46ed811d9067186f5
parent a2f11a70fe9bd3ef519b15c4bf4e908dbae55886
Author: Paweł Pękala <c0rn@gazeta.pl>
Date:   Wed,  1 Feb 2012 18:26:56 +0000

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

Diffstat:
MChangeLog | 10++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/gtk/sslcertwindow.c | 8++++----
Msrc/jpilot.c | 8++++----
Msrc/mutt.c | 4++--
Msrc/pine.c | 4++--
Msrc/procmsg.c | 3++-
Msrc/vcard.c | 8++++----
9 files changed, 30 insertions(+), 18 deletions(-)

diff --git 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 diff --git a/PATCHSETS b/PATCHSETS @@ -4336,3 +4336,4 @@ ( 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 diff --git a/configure.ac b/configure.ac @@ -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= diff --git a/src/gtk/sslcertwindow.c b/src/gtk/sslcertwindow.c @@ -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); } diff --git a/src/jpilot.c b/src/jpilot.c @@ -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 ) { diff --git a/src/mutt.c b/src/mutt.c @@ -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 ) { diff --git a/src/pine.c b/src/pine.c @@ -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 ) { diff --git a/src/procmsg.c b/src/procmsg.c @@ -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); } diff --git a/src/vcard.c b/src/vcard.c @@ -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 ) {