From 83868b8c46ace8a3a5df069be84e4f4f3c4ad872 Mon Sep 17 00:00:00 2001 From: Max Rottenkolber Date: Thu, 17 Dec 2015 17:35:06 +0100 Subject: [PATCH 1/3] core.shm: Assert return value of `mkdir(2)' when creating shm root. --- src/core/shm.lua | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/core/shm.lua b/src/core/shm.lua index 47f0c7cf9c..429f204a5e 100644 --- a/src/core/shm.lua +++ b/src/core/shm.lua @@ -103,10 +103,15 @@ end -- Make directories needed for a named object. -- Given the name "foo/bar/baz" create /var/run/foo and /var/run/foo/bar. function mkdir (name) - -- Create root with mode "rwxrwxrwt" (R/W for all and sticky) - local mask = S.umask(0) - S.mkdir(root, "01777") - S.umask(mask) + -- Create root with mode "rwxrwxrwt" (R/W for all and sticky) if it + -- does not exist yet. + if not S.stat(root) then + local mask = S.umask(0) + local status, err = S.mkdir(root, "01777") + assert(status, ("Unable to create %s: %s"):format( + root, tostring(err or "unspecified error"))) + S.umask(mask) + end -- Create sub directories local dir = root name:gsub("([^/]+)", From d32aef5b17d4979eafcfc578b78174d7d370efef Mon Sep 17 00:00:00 2001 From: Max Rottenkolber Date: Thu, 17 Dec 2015 17:53:29 +0100 Subject: [PATCH 2/3] lib.hardware.pci: Make device_info throw error when device by pciaddress does not exist. --- src/lib/hardware/pci.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/hardware/pci.lua b/src/lib/hardware/pci.lua index 00d0fd1d35..db24465642 100644 --- a/src/lib/hardware/pci.lua +++ b/src/lib/hardware/pci.lua @@ -2,6 +2,7 @@ module(...,package.seeall) local ffi = require("ffi") local C = ffi.C +local S = require("syscall") local lib = require("core.lib") @@ -34,6 +35,7 @@ end function device_info (pciaddress) local info = {} local p = path(pciaddress) + assert(S.stat(p), ("No such device: %s"):format(pciaddress)) info.pciaddress = canonical(pciaddress) info.vendor = lib.firstline(p.."/vendor") info.device = lib.firstline(p.."/device") From e880a1b332be8cc29d47dceab95d88c961b09127 Mon Sep 17 00:00:00 2001 From: Max Rottenkolber Date: Thu, 17 Dec 2015 17:57:57 +0100 Subject: [PATCH 3/3] packetblaster: Bail out when no suitable PCI devices were selected. --- src/program/packetblaster/packetblaster.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/src/program/packetblaster/packetblaster.lua b/src/program/packetblaster/packetblaster.lua index 37af858960..4deb70d3f9 100644 --- a/src/program/packetblaster/packetblaster.lua +++ b/src/program/packetblaster/packetblaster.lua @@ -46,6 +46,7 @@ function run (args) config.link(c, "tee."..tostring(nics).."->"..name..".input") end end + assert(nics > 0, " matches no suitable devices.") engine.busywait = true intel10g.num_descriptors = 32*1024 engine.configure(c)