[packages/linphone] upstream fix to a use-after-free

jajcus jajcus at pld-linux.org
Tue Jun 10 11:23:27 CEST 2014


commit 1efea340a379d8787133746ba2513c34b0160ded
Author: Jacek Konieczny <j.konieczny at eggsoft.pl>
Date:   Tue Jun 10 11:22:46 2014 +0200

    upstream fix to a use-after-free
    
    second part of the fix of display name handling in Linphone
    
    Release: 2

 displayname_use_after_free.patch | 46 ++++++++++++++++++++++++++++++++++++++++
 linphone.spec                    |  4 +++-
 2 files changed, 49 insertions(+), 1 deletion(-)
---
diff --git a/linphone.spec b/linphone.spec
index ef0d111..242fbbb 100644
--- a/linphone.spec
+++ b/linphone.spec
@@ -17,13 +17,14 @@ Summary:	Linphone Internet Phone
 Summary(pl.UTF-8):	Linphone - telefon internetowy
 Name:		linphone
 Version:	3.7.0
-Release:	1
+Release:	2
 License:	GPL v2+
 Group:		Applications/Communications
 Source0:	http://download-mirror.savannah.gnu.org/releases/linphone/3.7.x/sources/%{name}-%{version}.tar.gz
 # Source0-md5:	6978492712bdacd452e375254d6033ae
 Patch0:		%{name}-imgdir.patch
 Patch1:		%{name}-sh.patch
+Patch2:		displayname_use_after_free.patch
 URL:		http://www.linphone.org/
 BuildRequires:	alsa-lib-devel >= 0.9.0
 BuildRequires:	autoconf >= 2.50
@@ -187,6 +188,7 @@ find '(' -name '*.c' -o -name '*.h' ')' -print0 | xargs -0 %{__sed} -i -e 's,\r$
 
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %build
 %{__libtoolize}
diff --git a/displayname_use_after_free.patch b/displayname_use_after_free.patch
new file mode 100644
index 0000000..d2f2f17
--- /dev/null
+++ b/displayname_use_after_free.patch
@@ -0,0 +1,46 @@
+commit a32c864292e147b769bc6f2b19735593cf84f41e
+Author: Jehan Monnier <jehan.monnier at linphone.org>
+Date:   Mon Apr 14 16:28:57 2014 +0200
+
+    fix invalid read in gtk app call log management
+
+diff --git a/gtk/calllogs.c b/gtk/calllogs.c
+index 2f7e8f7..7a4840a 100644
+--- a/gtk/calllogs.c
++++ b/gtk/calllogs.c
+@@ -293,7 +293,10 @@ void linphone_gtk_call_log_update(GtkWidget *w){
+ #endif
+ 		lf=linphone_core_get_friend_by_address(linphone_gtk_get_core(),addr);
+ 		if(lf != NULL){
+-			display=linphone_address_get_display_name(linphone_friend_get_address(lf));
++			if ((display=linphone_address_get_display_name(linphone_friend_get_address(lf)))) {
++				/*update display name from friend*/
++				linphone_address_set_display_name(la,display);
++			}
+ 		} else {
+ 			display=linphone_address_get_display_name(la);
+ 		}
+@@ -302,9 +305,8 @@ void linphone_gtk_call_log_update(GtkWidget *w){
+ 			if (display==NULL){
+ 				display=linphone_address_get_domain (la);
+ 			}
+-		} else {
+-			linphone_address_set_display_name(la,display);
+ 		}
++
+ 		if (linphone_call_log_get_quality(cl)!=-1){
+ 			snprintf(quality,sizeof(quality),"%.1f",linphone_call_log_get_quality(cl));
+ 		}else snprintf(quality,sizeof(quality)-1,"%s",_("n/a"));
+diff --git a/tester/call_tester.c b/tester/call_tester.c
+index 2a18b30..c655e4b 100644
+--- a/tester/call_tester.c
++++ b/tester/call_tester.c
+@@ -355,7 +355,7 @@ static void call_with_dns_time_out(void) {
+ 	linphone_core_set_sip_transports(marie->lc,&transport);
+ 	linphone_core_iterate(marie->lc);
+ 	sal_set_dns_timeout(marie->lc->sal,0);
+-	linphone_core_invite(marie->lc,"sip:toto at toto.com");
++	linphone_core_invite(marie->lc,"\"t\x8et\x8e\" sip:toto at toto.com"); /*just to use non ascii values*/
+ 	for(i=0;i<10;i++){
+ 		ms_usleep(200000);
+ 		linphone_core_iterate(marie->lc);
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/linphone.git/commitdiff/1efea340a379d8787133746ba2513c34b0160ded



More information about the pld-cvs-commit mailing list