summaryrefslogtreecommitdiff
path: root/sys-process/incron/files/incron-0.5.12-issue25.patch
blob: 8883aec180ab3750191d8a2ba5cc6b9a58272def (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
https://bugs.gentoo.org/785448

Origin: https://github.com/ar-/incron/issues/25#issuecomment-583796322

--- old/usertable.cpp
+++ new/usertable.cpp
@@ -370,20 +370,21 @@ void UserTable::OnEvent(InotifyEvent& rEvt)
 {
   InotifyWatch* pW = rEvt.GetWatch();
   IncronTabEntry* pE = FindEntry(pW);
+  std::string pW_path = pW->GetPath();
 
   // no entry found - this shouldn't occur
   if (pE == NULL)
     return;
 
   // discard event if user has no access rights to watch path
-  if (!(m_fSysTable || MayAccess(pW->GetPath(), DONT_FOLLOW(rEvt.GetMask()))))
+  if (!(m_fSysTable || MayAccess(pW_path, DONT_FOLLOW(rEvt.GetMask()))))
     return;
     
   //#if 0
   // log output for each dir + file + event
   std::string events;
   rEvt.DumpTypes(events);
-  syslog(LOG_INFO, "PATH (%s) FILE (%s) EVENT (%s)", pW->GetPath().c_str() , IncronTabEntry::GetSafePath(rEvt.GetName()).c_str() , events.c_str());
+  syslog(LOG_INFO, "PATH (%s) FILE (%s) EVENT (%s)", pW_path.c_str() , IncronTabEntry::GetSafePath(rEvt.GetName()).c_str() , events.c_str());
   //#endif
   
   // add new watch for newly created subdirs
@@ -422,7 +423,7 @@ void UserTable::OnEvent(InotifyEvent& rEvt)
       else {
         cmd.append(cs.substr(oldpos, pos-oldpos));
         if (cs[px] == '@') {          // base path
-          cmd.append(IncronTabEntry::GetSafePath(pW->GetPath()));
+          cmd.append(IncronTabEntry::GetSafePath(pW_path));
           oldpos = pos + 2;
         }
         else if (cs[px] == '#') {     // file name