[arch-commits] Commit in incron/trunk (0001-GetSafePath.patch PKGBUILD)

Christian Hesse eworm at gemini.archlinux.org
Fri Apr 29 10:10:53 UTC 2022


    Date: Friday, April 29, 2022 @ 10:10:53
  Author: eworm
Revision: 1191779

upgpkg: incron 0.5.12-5: fix escaping target in GetSafePath()

Added:
  incron/trunk/0001-GetSafePath.patch
Modified:
  incron/trunk/PKGBUILD

------------------------+
 0001-GetSafePath.patch |   74 +++++++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD               |    7 +++-
 2 files changed, 80 insertions(+), 1 deletion(-)

Added: 0001-GetSafePath.patch
===================================================================
--- 0001-GetSafePath.patch	                        (rev 0)
+++ 0001-GetSafePath.patch	2022-04-29 10:10:53 UTC (rev 1191779)
@@ -0,0 +1,74 @@
+From 47263e66497eaff3a83873080fa4b76bd5f6ad7d Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail at eworm.de>
+Date: Fri, 29 Apr 2022 00:00:09 +0200
+Subject: [PATCH 1/2] simplify code
+
+No need for a lot of if-else... Just add a backslash if required, then
+append the character.
+---
+ incrontab.cpp | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/incrontab.cpp b/incrontab.cpp
+index 5255163..613aad4 100644
+--- a/incrontab.cpp
++++ b/incrontab.cpp
+@@ -168,15 +168,11 @@ std::string IncronTabEntry::GetSafePath(const std::string& rPath)
+   
+   SIZE len = rPath.length();
+   for (SIZE i = 0; i < len; i++) {
+-    if (rPath[i] == ' ') {
+-      stream << "\\ ";
+-    }
+-    else if (rPath[i] == '\\') {
+-      stream << "\\\\";
+-    }
+-    else {
+-      stream << rPath[i];
++    if (rPath[i] == ' ' ||
++        rPath[i] == '\\') {
++      stream << "\\";
+     }
++    stream << rPath[i];
+   }
+   
+   return stream.str();
+-- 
+2.36.0
+
+
+From 35f4298d574151deadbdeb7ccc7785bf36504d3d Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail at eworm.de>
+Date: Fri, 29 Apr 2022 00:02:18 +0200
+Subject: [PATCH 2/2] also escape single & double quotes, parenthesis and angle
+ brackets
+
+This fixes...
+
+incrond[1714]: cannot exec process: Resource temporarily unavailable
+
+... with bad file name due to messing escaping.
+---
+ incrontab.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/incrontab.cpp b/incrontab.cpp
+index 613aad4..8b951da 100644
+--- a/incrontab.cpp
++++ b/incrontab.cpp
+@@ -169,6 +169,12 @@ std::string IncronTabEntry::GetSafePath(const std::string& rPath)
+   SIZE len = rPath.length();
+   for (SIZE i = 0; i < len; i++) {
+     if (rPath[i] == ' ' ||
++        rPath[i] == '\'' ||
++        rPath[i] == '"' ||
++        rPath[i] == '(' ||
++        rPath[i] == ')' ||
++        rPath[i] == '<' ||
++        rPath[i] == '>' ||
+         rPath[i] == '\\') {
+       stream << "\\";
+     }
+-- 
+2.36.0
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-04-29 10:04:53 UTC (rev 1191778)
+++ PKGBUILD	2022-04-29 10:10:53 UTC (rev 1191779)
@@ -4,7 +4,7 @@
 
 pkgname=incron
 pkgver=0.5.12
-pkgrel=4
+pkgrel=5
 _commit=f45c2f5ac4baea99b48e99a713d1f4ec1854aa76
 pkgdesc="Like the regular cron but is driven by filesystem events instead of time periods"
 arch=('x86_64')
@@ -15,10 +15,12 @@
 options=('emptydirs')
 #source=("$pkgname-$pkgver.tar.gz::https://github.com/ar-/incron/archive/$pkgver.tar.gz"
 source=("git+https://github.com/ar-/incron.git#commit=${_commit}"
+        '0001-GetSafePath.patch'
         "incron.sysusers"
         "incron.tmpfiles"
         "incrond.service")
 sha256sums=('SKIP'
+            '4a939f4af82c8d972478f2703aea6e524af8f7bf8bd1d8cf516ef78ff5e6713b'
             'e5da0a3af368c286fa2b180015c9efc5aef5018c271a16620b8c30bfe6f9ccc2'
             '422c4a715da4037550d2f97de28f47f91d0b58983c188c6cf1d1233370e048a4'
             '5ff72411c704dd38823892d7fd13992509c3d906bfe0b4a5cafbe382e4e01c24')
@@ -26,6 +28,9 @@
 prepare() {
   cd "${srcdir}"/$pkgname
   sed -i 's|$(DESTDIR)$(PREFIX)/sbin/|$(DESTDIR)$(PREFIX)/bin/|g' Makefile
+
+  # https://github.com/ar-/incron/pull/91
+  patch -Np1 < ../0001-GetSafePath.patch
 }
 
 build() {



More information about the arch-commits mailing list