1*4882a593SmuzhiyunFrom d68db9f2cee975aad5e07b44485615f3d842ab45 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Darik Horn <dajhorn@vanadac.com> 3*4882a593SmuzhiyunDate: Fri, 11 Jul 2014 16:17:18 -0400 4*4882a593SmuzhiyunSubject: [PATCH] Change GetExeDir to GetStateDir in Cedar and Mayaqua. 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunResolve this AppArmor error by ensuring that certificate files files are 7*4882a593Smuzhiyunwritten into /var/lib/softether instead of the current working directory: 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun Profile: /usr/sbin/softetherd 10*4882a593Smuzhiyun Operation: mkdir 11*4882a593Smuzhiyun Name: /usr/sbin/chain_certs 12*4882a593Smuzhiyun Denied: c 13*4882a593Smuzhiyun Logfile: /var/log/kern.log 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun type=1400 audit: apparmor="DENIED" operation="mkdir" profile="/usr/sbin/softetherd" name="/usr/sbin/chain_certs/" pid=36448 comm="softetherd" requested_mask="c" denied_mask="c" fsuid=0 ouid=0 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunTaken from Github 18*4882a593Smuzhiyunhttps://github.com/dajhorn/SoftEtherVPN/commit/d68db9f2cee975aad5e07b44485615f3d842ab45. 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunSigned-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> 21*4882a593SmuzhiyunSigned-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 22*4882a593Smuzhiyun--- 23*4882a593Smuzhiyun src/Cedar/Protocol.c | 12 ++++++------ 24*4882a593Smuzhiyun src/Mayaqua/Network.c | 6 +++--- 25*4882a593Smuzhiyun 2 files changed, 9 insertions(+), 9 deletions(-) 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunIndex: b/src/Cedar/Protocol.c 28*4882a593Smuzhiyun=================================================================== 29*4882a593Smuzhiyun--- a/src/Cedar/Protocol.c 30*4882a593Smuzhiyun+++ b/src/Cedar/Protocol.c 31*4882a593Smuzhiyun@@ -161,10 +161,10 @@ 32*4882a593Smuzhiyun UINT i; 33*4882a593Smuzhiyun DIRLIST *dir; 34*4882a593Smuzhiyun wchar_t dirname[MAX_SIZE]; 35*4882a593Smuzhiyun- wchar_t exedir[MAX_SIZE]; 36*4882a593Smuzhiyun+ wchar_t statedir[MAX_SIZE]; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun- GetExeDirW(exedir, sizeof(exedir)); 39*4882a593Smuzhiyun- CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); 40*4882a593Smuzhiyun+ GetStateDirW(statedir, sizeof(statedir)); 41*4882a593Smuzhiyun+ CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs"); 42*4882a593Smuzhiyun MakeDirExW(dirname); 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun if (auto_save) 45*4882a593Smuzhiyun@@ -461,7 +461,7 @@ 46*4882a593Smuzhiyun void AddAllChainCertsToCertList(LIST *o) 47*4882a593Smuzhiyun { 48*4882a593Smuzhiyun wchar_t dirname[MAX_SIZE]; 49*4882a593Smuzhiyun- wchar_t exedir[MAX_SIZE]; 50*4882a593Smuzhiyun+ wchar_t statedir[MAX_SIZE]; 51*4882a593Smuzhiyun DIRLIST *dir; 52*4882a593Smuzhiyun // Validate arguments 53*4882a593Smuzhiyun if (o == NULL) 54*4882a593Smuzhiyun@@ -469,9 +469,9 @@ 55*4882a593Smuzhiyun return; 56*4882a593Smuzhiyun } 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun- GetExeDirW(exedir, sizeof(exedir)); 59*4882a593Smuzhiyun+ GetStateDirW(statedir, sizeof(statedir)); 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun- CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); 62*4882a593Smuzhiyun+ CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs"); 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun MakeDirExW(dirname); 65*4882a593Smuzhiyun 66*4882a593SmuzhiyunIndex: b/src/Mayaqua/Network.c 67*4882a593Smuzhiyun=================================================================== 68*4882a593Smuzhiyun--- a/src/Mayaqua/Network.c 69*4882a593Smuzhiyun+++ b/src/Mayaqua/Network.c 70*4882a593Smuzhiyun@@ -12588,7 +12588,7 @@ 71*4882a593Smuzhiyun void AddChainSslCertOnDirectory(struct ssl_ctx_st *ctx) 72*4882a593Smuzhiyun { 73*4882a593Smuzhiyun wchar_t dirname[MAX_SIZE]; 74*4882a593Smuzhiyun- wchar_t exedir[MAX_SIZE]; 75*4882a593Smuzhiyun+ wchar_t statedir[MAX_SIZE]; 76*4882a593Smuzhiyun wchar_t txtname[MAX_SIZE]; 77*4882a593Smuzhiyun DIRLIST *dir; 78*4882a593Smuzhiyun LIST *o; 79*4882a593Smuzhiyun@@ -12602,9 +12602,9 @@ 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun o = NewListFast(NULL); 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun- GetExeDirW(exedir, sizeof(exedir)); 84*4882a593Smuzhiyun+ GetStateDirW(statedir, sizeof(statedir)); 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun- CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs"); 87*4882a593Smuzhiyun+ CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs"); 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun MakeDirExW(dirname); 90*4882a593Smuzhiyun 91