| From d68db9f2cee975aad5e07b44485615f3d842ab45 Mon Sep 17 00:00:00 2001 |
| From: Darik Horn <dajhorn@vanadac.com> |
| Date: Fri, 11 Jul 2014 16:17:18 -0400 |
| Subject: [PATCH] Change GetExeDir to GetStateDir in Cedar and Mayaqua. |
| |
| Resolve this AppArmor error by ensuring that certificate files files are |
| written into /var/lib/softether instead of the current working directory: |
| |
| Profile: /usr/sbin/softetherd |
| Operation: mkdir |
| Name: /usr/sbin/chain_certs |
| Denied: c |
| Logfile: /var/log/kern.log |
| |
| 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 |
| |
| Taken from Github |
| https://github.com/dajhorn/SoftEtherVPN/commit/d68db9f2cee975aad5e07b44485615f3d842ab45. |
| |
| Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| --- |
| src/Cedar/Protocol.c | 12 ++++++------ |
| src/Mayaqua/Network.c | 6 +++--- |
| 2 files changed, 9 insertions(+), 9 deletions(-) |
| |
| Index: b/src/Cedar/Protocol.c |
| =================================================================== |
| --- a/src/Cedar/Protocol.c |
| +++ b/src/Cedar/Protocol.c |
| @@ -161,10 +161,10 @@ |
| UINT i;
|
| DIRLIST *dir;
|
| wchar_t dirname[MAX_SIZE];
|
| - wchar_t exedir[MAX_SIZE];
|
| + wchar_t statedir[MAX_SIZE];
|
|
|
| - GetExeDirW(exedir, sizeof(exedir));
|
| - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
|
| + GetStateDirW(statedir, sizeof(statedir));
|
| + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
|
| MakeDirExW(dirname);
|
|
|
| if (auto_save)
|
| @@ -461,7 +461,7 @@ |
| void AddAllChainCertsToCertList(LIST *o)
|
| {
|
| wchar_t dirname[MAX_SIZE];
|
| - wchar_t exedir[MAX_SIZE];
|
| + wchar_t statedir[MAX_SIZE];
|
| DIRLIST *dir;
|
| // Validate arguments
|
| if (o == NULL)
|
| @@ -469,9 +469,9 @@ |
| return;
|
| }
|
|
|
| - GetExeDirW(exedir, sizeof(exedir));
|
| + GetStateDirW(statedir, sizeof(statedir));
|
|
|
| - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
|
| + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
|
|
|
| MakeDirExW(dirname);
|
|
|
| Index: b/src/Mayaqua/Network.c |
| =================================================================== |
| --- a/src/Mayaqua/Network.c |
| +++ b/src/Mayaqua/Network.c |
| @@ -12588,7 +12588,7 @@ |
| void AddChainSslCertOnDirectory(struct ssl_ctx_st *ctx)
|
| {
|
| wchar_t dirname[MAX_SIZE];
|
| - wchar_t exedir[MAX_SIZE];
|
| + wchar_t statedir[MAX_SIZE];
|
| wchar_t txtname[MAX_SIZE];
|
| DIRLIST *dir;
|
| LIST *o;
|
| @@ -12602,9 +12602,9 @@ |
|
|
| o = NewListFast(NULL);
|
|
|
| - GetExeDirW(exedir, sizeof(exedir));
|
| + GetStateDirW(statedir, sizeof(statedir));
|
|
|
| - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
|
| + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
|
|
|
| MakeDirExW(dirname);
|
|
|