0005-change-GetExeDir-to-GetStateDir-in-Cedar-and-Mayaqua.patch 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. From d68db9f2cee975aad5e07b44485615f3d842ab45 Mon Sep 17 00:00:00 2001
  2. From: Darik Horn <dajhorn@vanadac.com>
  3. Date: Fri, 11 Jul 2014 16:17:18 -0400
  4. Subject: [PATCH] Change GetExeDir to GetStateDir in Cedar and Mayaqua.
  5. Resolve this AppArmor error by ensuring that certificate files files are
  6. written into /var/lib/softether instead of the current working directory:
  7. Profile: /usr/sbin/softetherd
  8. Operation: mkdir
  9. Name: /usr/sbin/chain_certs
  10. Denied: c
  11. Logfile: /var/log/kern.log
  12. 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
  13. Taken from Github
  14. https://github.com/dajhorn/SoftEtherVPN/commit/d68db9f2cee975aad5e07b44485615f3d842ab45.
  15. Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
  16. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  17. ---
  18. src/Cedar/Protocol.c | 12 ++++++------
  19. src/Mayaqua/Network.c | 6 +++---
  20. 2 files changed, 9 insertions(+), 9 deletions(-)
  21. Index: b/src/Cedar/Protocol.c
  22. ===================================================================
  23. --- a/src/Cedar/Protocol.c
  24. +++ b/src/Cedar/Protocol.c
  25. @@ -161,10 +161,10 @@
  26. UINT i;
  27. DIRLIST *dir;
  28. wchar_t dirname[MAX_SIZE];
  29. - wchar_t exedir[MAX_SIZE];
  30. + wchar_t statedir[MAX_SIZE];
  31. - GetExeDirW(exedir, sizeof(exedir));
  32. - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
  33. + GetStateDirW(statedir, sizeof(statedir));
  34. + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
  35. MakeDirExW(dirname);
  36. if (auto_save)
  37. @@ -461,7 +461,7 @@
  38. void AddAllChainCertsToCertList(LIST *o)
  39. {
  40. wchar_t dirname[MAX_SIZE];
  41. - wchar_t exedir[MAX_SIZE];
  42. + wchar_t statedir[MAX_SIZE];
  43. DIRLIST *dir;
  44. // Validate arguments
  45. if (o == NULL)
  46. @@ -469,9 +469,9 @@
  47. return;
  48. }
  49. - GetExeDirW(exedir, sizeof(exedir));
  50. + GetStateDirW(statedir, sizeof(statedir));
  51. - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
  52. + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
  53. MakeDirExW(dirname);
  54. Index: b/src/Mayaqua/Network.c
  55. ===================================================================
  56. --- a/src/Mayaqua/Network.c
  57. +++ b/src/Mayaqua/Network.c
  58. @@ -12588,7 +12588,7 @@
  59. void AddChainSslCertOnDirectory(struct ssl_ctx_st *ctx)
  60. {
  61. wchar_t dirname[MAX_SIZE];
  62. - wchar_t exedir[MAX_SIZE];
  63. + wchar_t statedir[MAX_SIZE];
  64. wchar_t txtname[MAX_SIZE];
  65. DIRLIST *dir;
  66. LIST *o;
  67. @@ -12602,9 +12602,9 @@
  68. o = NewListFast(NULL);
  69. - GetExeDirW(exedir, sizeof(exedir));
  70. + GetStateDirW(statedir, sizeof(statedir));
  71. - CombinePathW(dirname, sizeof(dirname), exedir, L"chain_certs");
  72. + CombinePathW(dirname, sizeof(dirname), statedir, L"chain_certs");
  73. MakeDirExW(dirname);