Change os.listdir to listDirectory for safe directory listing.

netsetup
Mike Hiretsky 13 years ago
parent 68fc70b545
commit 061c6dac3f

@ -25,7 +25,7 @@ import sys
import operator
from cl_utils import runOsCommand,isMount,removeDir,typeFile,pathJoin, \
process,getRunCommands,getTupleVersion,cmpVersion, \
detectDeviceForPartition, getProgPath
detectDeviceForPartition, getProgPath,listDirectory
from shutil import copyfile,copytree
from cl_template import _terms
from subprocess import Popen,PIPE,STDOUT
@ -228,7 +228,7 @@ class DistributiveRepository:
else:
# discard inner directories
return filter(lambda x:not path.isdir( path.join(pathname,x)),
os.listdir(pathname))
listDirectory(pathname))
# get lists files in directories
allFiles = map(lambda x: map(lambda y: path.join(x,y),
listdistr(x)),
@ -311,7 +311,7 @@ class DistributiveRepository:
existsdirs = filter(path.exists,dirs)
listimgs = reduce(lambda x,y:x + \
map(lambda x:reMatch.search(path.join(y,x)),
os.listdir(y)),
listDirectory(y)),
existsdirs,[])
listimgs = filter(lambda x:x, listimgs)
if listimgs:
@ -534,7 +534,7 @@ class Distributive(object, SignalInterrupt):
"""Get last live squashfs image from directory"""
squashfiles = filter(lambda x:x,
map(self.reLive.search,
os.listdir(directory)))
listDirectory(directory)))
if squashfiles:
return max(squashfiles, key=self._getSquashNum).group()
return None
@ -918,7 +918,7 @@ class PartitionDistributive(Distributive):
path.join('/dev',deviceName)],
stdin=PIPE, stdout=PIPE,stderr=PIPE)
if len(filter(lambda x: deviceName in x and deviceName != x,
os.listdir('/dev'))) > 1:
listDirectory('/dev'))) > 1:
numPart = reDeviceSplit.search(dev)
if numPart:
numPart = numPart.groups()[-1]
@ -936,7 +936,7 @@ class PartitionDistributive(Distributive):
path.join('/dev',deviceName)],
stdin=PIPE, stdout=PIPE,stderr=PIPE)
if len(filter(lambda x: deviceName in x and deviceName != x,
os.listdir('/dev'))) > 1:
listDirectory('/dev'))) > 1:
numPart = reDeviceSplit.search(dev)
if numPart:
numPart = numPart.groups()[-1]

@ -21,8 +21,9 @@ from crypt import crypt
import cl_overriding
from cl_datavars import glob_attr
from os import path
from os import readlink,listdir,access,R_OK
from cl_utils import isMount,typeFile,getTupleVersion,pathJoin,isFstabMount
from os import readlink,access,R_OK
from cl_utils import isMount,typeFile,getTupleVersion,pathJoin,isFstabMount,\
listDirectory
from cl_distr import DistributiveRepository,PartitionDistributive
from cl_fill import clLocale
from operator import itemgetter
@ -143,12 +144,12 @@ class fillVars(object, glob_attr):
if path.exists(diskIdPath):
usbdevices = \
map(lambda x: readlink(path.join(diskIdPath,x)).rpartition('/')[2],
filter(lambda x: x.startswith('usb-'),listdir(diskIdPath)))
filter(lambda x: x.startswith('usb-'),listDirectory(diskIdPath)))
else:
usbdevices = []
reWrongDevice = re.compile("|".join(['sr','fd','ram','loop']))
devices = filter( lambda x: not reWrongDevice.search(x),
listdir('/sys/block'))
listDirectory('/sys/block'))
device_hash = {}
execParted = self.getProgPath("/usr/sbin/parted")
if not execParted:
@ -188,7 +189,7 @@ class fillVars(object, glob_attr):
devices = devicesHash.keys()
disksDevs = reduce( lambda x,y: x +
map( lambda x: ["/dev/%s"%x,y],
filter(lambda x: y in x,listdir('/sys/block/%s'%y))),
filter(lambda x: y in x,listDirectory('/sys/block/%s'%y))),
devices, [] )
disks = map(lambda x:x[0],disksDevs)
@ -309,7 +310,7 @@ class fillVars(object, glob_attr):
os.path.normpath(os.path.join(devuuid,os.readlink(x)))),
filter(os.path.islink,
map(lambda x:os.path.join(devuuid,x),
os.listdir(devuuid)))))
listDirectory(devuuid)))))
else:
mapUuidDev = {}
mapDevUuid = dict(map(lambda x:(x[1],x[0]),mapUuidDev.items()))
@ -407,7 +408,7 @@ class fillVars(object, glob_attr):
path.basename(x)),
filter(path.islink,
map(lambda x:path.join(devuuid,x),
os.listdir(devuuid)))))
listDirectory(devuuid)))))
return map(lambda x:hashUUID.get(x,""),diskDev)
return [""]*len(diskDev)
@ -1011,7 +1012,7 @@ class fillVars(object, glob_attr):
def get_os_install_kernel(self):
bootdir = path.join(self.Get('cl_chroot_path'),'boot')
modulesdir = path.join(self.Get('cl_chroot_path'),'lib/modules')
validKernel = os.listdir(modulesdir)
validKernel = listDirectory(modulesdir)
kernelFiles = self.getFilesByType(bootdir,"Linux kernel")
installMarch = self.Get('os_install_arch_machine')
kernelsWithVer = \
@ -1220,7 +1221,7 @@ class fillVars(object, glob_attr):
if not os.access(uuidpath,os.R_OK):
return ""
uuidDevs = filter(os.path.islink,map(lambda x: os.path.join(uuidpath,x),
os.listdir(uuidpath)))
listDirectory(uuidpath)))
mapDevUuid = dict(map(lambda x:(os.path.normpath(os.path.join(uuidpath,
os.readlink(x))),
os.path.basename(x)),

@ -25,7 +25,7 @@ from os import path
from cl_utils import runOsCommand,appendProgramToEnvFile, \
removeProgramToEnvFile,pathJoin, \
scanDirectory,process,getTupleVersion, \
detectDeviceForPartition
detectDeviceForPartition,listDirectory
from cl_kernel_utils import KernelConfig,InitRamFs
@ -1584,7 +1584,7 @@ class cl_install(color_print, SignalInterrupt):
'etc/env.d/03opengl')
openGlMods = filter(lambda x:x != "global",
os.listdir(pathGlModules))
listDirectory(pathGlModules))
mapGL_drivers = {'fglrx':"ati" if "ati" in openGlMods
else defaultGL,
'nvidia':"nvidia" if "nvidia" in openGlMods

@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from cl_utils import typeFile, process
from cl_utils import typeFile, process, listDirectory
import gzip
import re
import os
@ -85,7 +85,7 @@ class KernelModules:
def _initModulesData(self):
def holderlistdir(dirpath):
dirs = os.listdir(path.join(sysModules,dirpath,"holders"))
dirs = listDirectory(path.join(sysModules,dirpath,"holders"))
return reduce(lambda x,y:x+[y]+holderlistdir(path.join(dirpath,
"holders",y)),
dirs, [])
@ -94,7 +94,7 @@ class KernelModules:
refPath = lambda x: path.join(sysModules,x,"refcnt")
self.loadModules = filter(lambda x: access(holderPath(x),R_OK) and
access(refPath(x),R_OK),
os.listdir(sysModules))
listDirectory(sysModules))
self.useModules = map(lambda x:int(open(refPath(x),'r').read().strip()),
self.loadModules)
self.depModules = map(lambda x: holderlistdir(x),

Loading…
Cancel
Save