mirror of
https://github.com/AdaCore/cpython.git
synced 2026-02-12 12:57:15 -08:00
bpo-22831: Use "with" to avoid possible fd leaks in tools (part 2). (GH-10927)
This commit is contained in:
@@ -78,9 +78,9 @@ def test():
|
||||
continue
|
||||
else:
|
||||
f = open(filename, 'r')
|
||||
if debug: print('processing', filename, '...')
|
||||
text = f.read()
|
||||
f.close()
|
||||
with f:
|
||||
if debug: print('processing', filename, '...')
|
||||
text = f.read()
|
||||
paralist = text.split('\n\n')
|
||||
for para in paralist:
|
||||
if debug > 1: print('feeding ...')
|
||||
|
||||
@@ -22,17 +22,16 @@ def main():
|
||||
port = int(port[i+1:])
|
||||
host = host[:i]
|
||||
command = ' '.join(sys.argv[2:])
|
||||
s = socket(AF_INET, SOCK_STREAM)
|
||||
s.connect((host, port))
|
||||
s.send(command.encode())
|
||||
s.shutdown(SHUT_WR)
|
||||
reply = b''
|
||||
while True:
|
||||
data = s.recv(BUFSIZE)
|
||||
if not data:
|
||||
break
|
||||
reply += data
|
||||
print(reply.decode(), end=' ')
|
||||
s.close()
|
||||
with socket(AF_INET, SOCK_STREAM) as s:
|
||||
s.connect((host, port))
|
||||
s.send(command.encode())
|
||||
s.shutdown(SHUT_WR)
|
||||
reply = b''
|
||||
while True:
|
||||
data = s.recv(BUFSIZE)
|
||||
if not data:
|
||||
break
|
||||
reply += data
|
||||
print(reply.decode(), end=' ')
|
||||
|
||||
main()
|
||||
|
||||
@@ -26,16 +26,16 @@ def main():
|
||||
s.listen(1)
|
||||
while True:
|
||||
conn, (remotehost, remoteport) = s.accept()
|
||||
print('connection from', remotehost, remoteport)
|
||||
request = b''
|
||||
while 1:
|
||||
data = conn.recv(BUFSIZE)
|
||||
if not data:
|
||||
break
|
||||
request += data
|
||||
reply = execute(request.decode())
|
||||
conn.send(reply.encode())
|
||||
conn.close()
|
||||
with conn:
|
||||
print('connection from', remotehost, remoteport)
|
||||
request = b''
|
||||
while 1:
|
||||
data = conn.recv(BUFSIZE)
|
||||
if not data:
|
||||
break
|
||||
request += data
|
||||
reply = execute(request.decode())
|
||||
conn.send(reply.encode())
|
||||
|
||||
def execute(request):
|
||||
stdout = sys.stdout
|
||||
|
||||
@@ -130,7 +130,8 @@ def parse_dsp(dsp):
|
||||
ret = []
|
||||
dsp_path, dsp_name = os.path.split(dsp)
|
||||
try:
|
||||
lines = open(dsp, "r").readlines()
|
||||
with open(dsp, "r") as fp:
|
||||
lines = fp.readlines()
|
||||
except IOError as msg:
|
||||
sys.stderr.write("%s: %s\n" % (dsp, msg))
|
||||
return None
|
||||
|
||||
@@ -142,7 +142,8 @@ def main():
|
||||
# last option can not be "-i", so this ensures "pos+1" is in range!
|
||||
if sys.argv[pos] == '-i':
|
||||
try:
|
||||
options = open(sys.argv[pos+1]).read().split()
|
||||
with open(sys.argv[pos+1]) as infp:
|
||||
options = infp.read().split()
|
||||
except IOError as why:
|
||||
usage("File name '%s' specified with the -i option "
|
||||
"can not be read - %s" % (sys.argv[pos+1], why) )
|
||||
|
||||
@@ -561,9 +561,8 @@ def main():
|
||||
# initialize list of strings to exclude
|
||||
if options.excludefilename:
|
||||
try:
|
||||
fp = open(options.excludefilename)
|
||||
options.toexclude = fp.readlines()
|
||||
fp.close()
|
||||
with open(options.excludefilename) as fp:
|
||||
options.toexclude = fp.readlines()
|
||||
except IOError:
|
||||
print(_(
|
||||
"Can't read --exclude-file: %s") % options.excludefilename, file=sys.stderr)
|
||||
|
||||
@@ -96,11 +96,11 @@ def check(file):
|
||||
errprint("%r: I/O Error: %s" % (file, str(msg)))
|
||||
return
|
||||
|
||||
ff = FutureFinder(f, file)
|
||||
changed = ff.run()
|
||||
if changed:
|
||||
ff.gettherest()
|
||||
f.close()
|
||||
with f:
|
||||
ff = FutureFinder(f, file)
|
||||
changed = ff.run()
|
||||
if changed:
|
||||
ff.gettherest()
|
||||
if changed:
|
||||
if verbose:
|
||||
print("changed.")
|
||||
@@ -122,9 +122,8 @@ def check(file):
|
||||
os.rename(file, bak)
|
||||
if verbose:
|
||||
print("renamed", file, "to", bak)
|
||||
g = open(file, "w")
|
||||
ff.write(g)
|
||||
g.close()
|
||||
with open(file, "w") as g:
|
||||
ff.write(g)
|
||||
if verbose:
|
||||
print("wrote new", file)
|
||||
else:
|
||||
|
||||
@@ -85,9 +85,7 @@ def read(fileiter, pat, whilematch):
|
||||
else:
|
||||
break
|
||||
|
||||
def combine(fname):
|
||||
f = open(fname)
|
||||
|
||||
def combinefile(f):
|
||||
fi = iter(f)
|
||||
|
||||
for line in read(fi, re.compile(r'^Remaining objects:$'), False):
|
||||
@@ -121,8 +119,11 @@ def combine(fname):
|
||||
print('[%s->%s]' % (addr2rc[addr], rc), end=' ')
|
||||
print(guts, addr2guts[addr])
|
||||
|
||||
f.close()
|
||||
print("%d objects before, %d after" % (before, after))
|
||||
|
||||
def combine(fname):
|
||||
with open(fname) as f:
|
||||
combinefile(f)
|
||||
|
||||
if __name__ == '__main__':
|
||||
combine(sys.argv[1])
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
import os, sys, errno
|
||||
|
||||
def main():
|
||||
p = os.popen('du ' + ' '.join(sys.argv[1:]), 'r')
|
||||
total, d = None, {}
|
||||
for line in p.readlines():
|
||||
i = 0
|
||||
while line[i] in '0123456789': i = i+1
|
||||
size = eval(line[:i])
|
||||
while line[i] in ' \t': i = i+1
|
||||
filename = line[i:-1]
|
||||
comps = filename.split('/')
|
||||
if comps[0] == '': comps[0] = '/'
|
||||
if comps[len(comps)-1] == '': del comps[len(comps)-1]
|
||||
total, d = store(size, comps, total, d)
|
||||
with os.popen('du ' + ' '.join(sys.argv[1:])) as p:
|
||||
for line in p:
|
||||
i = 0
|
||||
while line[i] in '0123456789': i = i+1
|
||||
size = eval(line[:i])
|
||||
while line[i] in ' \t': i = i+1
|
||||
filename = line[i:-1]
|
||||
comps = filename.split('/')
|
||||
if comps[0] == '': comps[0] = '/'
|
||||
if comps[len(comps)-1] == '': del comps[len(comps)-1]
|
||||
total, d = store(size, comps, total, d)
|
||||
try:
|
||||
display(total, d)
|
||||
except IOError as e:
|
||||
|
||||
@@ -28,29 +28,30 @@ def treat_file(filename, outfp):
|
||||
except OSError:
|
||||
sys.stderr.write('Cannot open %s\n'%filename)
|
||||
return
|
||||
charno = 0
|
||||
lineno = 0
|
||||
tags = []
|
||||
size = 0
|
||||
while 1:
|
||||
line = fp.readline()
|
||||
if not line:
|
||||
break
|
||||
lineno = lineno + 1
|
||||
m = matcher.search(line)
|
||||
if m:
|
||||
tag = m.group(0) + '\177%d,%d\n' % (lineno, charno)
|
||||
tags.append(tag)
|
||||
size = size + len(tag)
|
||||
charno = charno + len(line)
|
||||
with fp:
|
||||
charno = 0
|
||||
lineno = 0
|
||||
tags = []
|
||||
size = 0
|
||||
while 1:
|
||||
line = fp.readline()
|
||||
if not line:
|
||||
break
|
||||
lineno = lineno + 1
|
||||
m = matcher.search(line)
|
||||
if m:
|
||||
tag = m.group(0) + '\177%d,%d\n' % (lineno, charno)
|
||||
tags.append(tag)
|
||||
size = size + len(tag)
|
||||
charno = charno + len(line)
|
||||
outfp.write('\f\n%s,%d\n' % (filename,size))
|
||||
for tag in tags:
|
||||
outfp.write(tag)
|
||||
|
||||
def main():
|
||||
outfp = open('TAGS', 'w')
|
||||
for filename in sys.argv[1:]:
|
||||
treat_file(filename, outfp)
|
||||
with open('TAGS', 'w') as outfp:
|
||||
for filename in sys.argv[1:]:
|
||||
treat_file(filename, outfp)
|
||||
|
||||
if __name__=="__main__":
|
||||
main()
|
||||
|
||||
@@ -55,17 +55,17 @@ def process(filename, listnames):
|
||||
except IOError as msg:
|
||||
sys.stderr.write("Can't open: %s\n" % msg)
|
||||
return 1
|
||||
g = tokenize.generate_tokens(fp.readline)
|
||||
lastrow = None
|
||||
for type, token, (row, col), end, line in g:
|
||||
if token in ("/", "/="):
|
||||
if listnames:
|
||||
print(filename)
|
||||
break
|
||||
if row != lastrow:
|
||||
lastrow = row
|
||||
print("%s:%d:%s" % (filename, row, line), end=' ')
|
||||
fp.close()
|
||||
with fp:
|
||||
g = tokenize.generate_tokens(fp.readline)
|
||||
lastrow = None
|
||||
for type, token, (row, col), end, line in g:
|
||||
if token in ("/", "/="):
|
||||
if listnames:
|
||||
print(filename)
|
||||
break
|
||||
if row != lastrow:
|
||||
lastrow = row
|
||||
print("%s:%d:%s" % (filename, row, line), end=' ')
|
||||
|
||||
def processdir(dir, listnames):
|
||||
try:
|
||||
|
||||
@@ -73,22 +73,19 @@ def main():
|
||||
elif opt == '--dry-run':
|
||||
DRYRUN = 1
|
||||
elif opt == '--oldnotice':
|
||||
fp = open(arg)
|
||||
OLD_NOTICE = fp.read()
|
||||
fp.close()
|
||||
with open(arg) as fp:
|
||||
OLD_NOTICE = fp.read()
|
||||
elif opt == '--newnotice':
|
||||
fp = open(arg)
|
||||
NEW_NOTICE = fp.read()
|
||||
fp.close()
|
||||
with open(arg) as fp:
|
||||
NEW_NOTICE = fp.read()
|
||||
|
||||
for arg in args:
|
||||
process(arg)
|
||||
|
||||
|
||||
def process(file):
|
||||
f = open(file)
|
||||
data = f.read()
|
||||
f.close()
|
||||
with open(file) as f:
|
||||
data = f.read()
|
||||
i = data.find(OLD_NOTICE)
|
||||
if i < 0:
|
||||
if VERBOSE:
|
||||
@@ -102,9 +99,8 @@ def process(file):
|
||||
data = data[:i] + NEW_NOTICE + data[i+len(OLD_NOTICE):]
|
||||
new = file + ".new"
|
||||
backup = file + ".bak"
|
||||
f = open(new, "w")
|
||||
f.write(data)
|
||||
f.close()
|
||||
with open(new, "w") as f:
|
||||
f.write(data)
|
||||
os.rename(file, backup)
|
||||
os.rename(new, file)
|
||||
|
||||
|
||||
@@ -14,20 +14,18 @@ def main():
|
||||
except IOError as msg:
|
||||
print(filename, ': can\'t open :', msg)
|
||||
continue
|
||||
line = f.readline()
|
||||
if not re.match('^#! */usr/local/bin/python', line):
|
||||
print(filename, ': not a /usr/local/bin/python script')
|
||||
f.close()
|
||||
continue
|
||||
rest = f.read()
|
||||
f.close()
|
||||
with f:
|
||||
line = f.readline()
|
||||
if not re.match('^#! */usr/local/bin/python', line):
|
||||
print(filename, ': not a /usr/local/bin/python script')
|
||||
continue
|
||||
rest = f.read()
|
||||
line = re.sub('/usr/local/bin/python',
|
||||
'/usr/bin/env python', line)
|
||||
print(filename, ':', repr(line))
|
||||
f = open(filename, "w")
|
||||
f.write(line)
|
||||
f.write(rest)
|
||||
f.close()
|
||||
with open(filename, "w") as f:
|
||||
f.write(line)
|
||||
f.write(rest)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
@@ -29,9 +29,8 @@ def fetch_server_certificate (host, port):
|
||||
return None
|
||||
else:
|
||||
tn = tempfile.mktemp()
|
||||
fp = open(tn, "wb")
|
||||
fp.write(m.group(1) + b"\n")
|
||||
fp.close()
|
||||
with open(tn, "wb") as fp:
|
||||
fp.write(m.group(1) + b"\n")
|
||||
try:
|
||||
tn2 = (outfile or tempfile.mktemp())
|
||||
status, output = subproc(r'openssl x509 -in "%s" -out "%s"' %
|
||||
@@ -39,9 +38,8 @@ def fetch_server_certificate (host, port):
|
||||
if status != 0:
|
||||
raise RuntimeError('OpenSSL x509 failed with status %s and '
|
||||
'output: %r' % (status, output))
|
||||
fp = open(tn2, 'rb')
|
||||
data = fp.read()
|
||||
fp.close()
|
||||
with open(tn2, 'rb') as fp:
|
||||
data = fp.read()
|
||||
os.unlink(tn2)
|
||||
return data
|
||||
finally:
|
||||
@@ -49,9 +47,8 @@ def fetch_server_certificate (host, port):
|
||||
|
||||
if sys.platform.startswith("win"):
|
||||
tfile = tempfile.mktemp()
|
||||
fp = open(tfile, "w")
|
||||
fp.write("quit\n")
|
||||
fp.close()
|
||||
with open(tfile, "w") as fp:
|
||||
fp.write("quit\n")
|
||||
try:
|
||||
status, output = subproc(
|
||||
'openssl s_client -connect "%s:%s" -showcerts < "%s"' %
|
||||
|
||||
@@ -69,23 +69,21 @@ def main():
|
||||
sys.stdout.write('# Generated by h2py from stdin\n')
|
||||
process(sys.stdin, sys.stdout)
|
||||
else:
|
||||
fp = open(filename, 'r')
|
||||
outfile = os.path.basename(filename)
|
||||
i = outfile.rfind('.')
|
||||
if i > 0: outfile = outfile[:i]
|
||||
modname = outfile.upper()
|
||||
outfile = modname + '.py'
|
||||
outfp = open(outfile, 'w')
|
||||
outfp.write('# Generated by h2py from %s\n' % filename)
|
||||
filedict = {}
|
||||
for dir in searchdirs:
|
||||
if filename[:len(dir)] == dir:
|
||||
filedict[filename[len(dir)+1:]] = None # no '/' trailing
|
||||
importable[filename[len(dir)+1:]] = modname
|
||||
break
|
||||
process(fp, outfp)
|
||||
outfp.close()
|
||||
fp.close()
|
||||
with open(filename) as fp:
|
||||
outfile = os.path.basename(filename)
|
||||
i = outfile.rfind('.')
|
||||
if i > 0: outfile = outfile[:i]
|
||||
modname = outfile.upper()
|
||||
outfile = modname + '.py'
|
||||
with open(outfile, 'w') as outfp:
|
||||
outfp.write('# Generated by h2py from %s\n' % filename)
|
||||
filedict = {}
|
||||
for dir in searchdirs:
|
||||
if filename[:len(dir)] == dir:
|
||||
filedict[filename[len(dir)+1:]] = None # no '/' trailing
|
||||
importable[filename[len(dir)+1:]] = modname
|
||||
break
|
||||
process(fp, outfp)
|
||||
|
||||
def pytify(body):
|
||||
# replace ignored patterns by spaces
|
||||
@@ -161,9 +159,10 @@ def process(fp, outfp, env = {}):
|
||||
except IOError:
|
||||
pass
|
||||
if inclfp:
|
||||
outfp.write(
|
||||
'\n# Included from %s\n' % filename)
|
||||
process(inclfp, outfp, env)
|
||||
with inclfp:
|
||||
outfp.write(
|
||||
'\n# Included from %s\n' % filename)
|
||||
process(inclfp, outfp, env)
|
||||
else:
|
||||
sys.stderr.write('Warning - could not find file %s\n' %
|
||||
filename)
|
||||
|
||||
@@ -45,9 +45,8 @@ def main():
|
||||
if filename == '-':
|
||||
process(sys.stdin, sys.stdout)
|
||||
else:
|
||||
f = open(filename, 'r')
|
||||
process(f, sys.stdout)
|
||||
f.close()
|
||||
with open(filename) as f:
|
||||
process(f, sys.stdout)
|
||||
|
||||
def process(fpi, fpo):
|
||||
keywords = ('if', 'ifdef', 'ifndef', 'else', 'endif')
|
||||
|
||||
@@ -47,10 +47,10 @@ def printsum(filename, out=sys.stdout):
|
||||
except IOError as msg:
|
||||
sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg))
|
||||
return 1
|
||||
if fnfilter:
|
||||
filename = fnfilter(filename)
|
||||
sts = printsumfp(fp, filename, out)
|
||||
fp.close()
|
||||
with fp:
|
||||
if fnfilter:
|
||||
filename = fnfilter(filename)
|
||||
sts = printsumfp(fp, filename, out)
|
||||
return sts
|
||||
|
||||
def printsumfp(fp, filename, out=sys.stdout):
|
||||
|
||||
@@ -18,14 +18,13 @@ def mkrealfile(name):
|
||||
st = os.stat(name) # Get the mode
|
||||
mode = S_IMODE(st[ST_MODE])
|
||||
linkto = os.readlink(name) # Make sure again it's a symlink
|
||||
f_in = open(name, 'r') # This ensures it's a file
|
||||
os.unlink(name)
|
||||
f_out = open(name, 'w')
|
||||
while 1:
|
||||
buf = f_in.read(BUFSIZE)
|
||||
if not buf: break
|
||||
f_out.write(buf)
|
||||
del f_out # Flush data to disk before changing mode
|
||||
with open(name, 'rb') as f_in: # This ensures it's a file
|
||||
os.unlink(name)
|
||||
with open(name, 'wb') as f_out:
|
||||
while 1:
|
||||
buf = f_in.read(BUFSIZE)
|
||||
if not buf: break
|
||||
f_out.write(buf)
|
||||
os.chmod(name, mode)
|
||||
|
||||
def mkrealdir(name):
|
||||
|
||||
@@ -42,7 +42,8 @@ NM = 'nm -p -g %s' # For Linux, use "nm -g %s"
|
||||
|
||||
def symbols(lib=PYTHONLIB,types=('T','C','D')):
|
||||
|
||||
lines = os.popen(NM % lib).readlines()
|
||||
with os.popen(NM % lib) as pipe:
|
||||
lines = pipe.readlines()
|
||||
lines = [s.strip() for s in lines]
|
||||
symbols = {}
|
||||
for line in lines:
|
||||
@@ -97,7 +98,7 @@ def main():
|
||||
exports = export_list(s)
|
||||
f = sys.stdout # open('PC/python_nt.def','w')
|
||||
f.write(DEF_TEMPLATE % (exports))
|
||||
f.close()
|
||||
# f.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
@@ -180,7 +180,8 @@ def main():
|
||||
if filename == '-':
|
||||
readinput(sys.stdin)
|
||||
else:
|
||||
readinput(open(filename, 'r'))
|
||||
with open(filename) as f:
|
||||
readinput(f)
|
||||
#
|
||||
warndups()
|
||||
#
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user