[luci] [luci-lib-core] ccache not loading or storing cache files

Bryan Mayland bmayland at leoninedev.com
Wed Dec 19 01:31:11 CET 2012


I've noticed that there is nothing in my /tmp/luci-modulecache 
directory. Digging into it it looks like because both the expected uid 
and mode of the files doesn't match, so for security reasons they're 
long being loaded or saved by ccache.lua (from the luci-lib-core 
package). I'm not sure how far back this has been broken but I it 
appears to have been quite some time, possibly years?

I've included a patch which updates the checks to use the right newer 
function name / structure name. It decreases page load times by about 
10-15% on my bcm2708 (raspberrypi). I can create a ticket if you'd 
prefer. The patch is against the luci-0.11 branch but should apply to 
trunk as well.

Signed-off-by: Bryan Mayland <bmayland at leoninedev.com>
---
--- luci-0.11+svn9559/libs/core/luasrc/ccache.lua.orig    2012-12-18 
18:50:52.850186146 -0500
+++ luci-0.11+svn9559/libs/core/luasrc/ccache.lua    2012-12-18 
18:51:56.127067560 -0500
@@ -37,7 +37,7 @@
      mode = mode or "r--r--r--"

      local loader = package.loaders[2]
-    local uid    = nixio.getpid("uid")
+    local uid    = nixio.getuid()

      if not fs.stat(cachepath) then
          fs.mkdir(cachepath)
@@ -53,7 +53,7 @@

      local function _load_sane(file)
          local stat = fs.stat(file)
-        if stat and stat.uid == uid and stat.mode == mode then
+        if stat and stat.uid == uid and stat.modestr == mode then
              return loadfile(file)
          end
      end



More information about the luci mailing list