From 04b9f552f420c82564774260518b06aa7bd6d64e Mon Sep 17 00:00:00 2001 From: ??? Date: Thu, 14 May 2009 22:22:44 -0500 Subject: [PATCH] [PATCH] invalid "-K" value cause smem ended with IndexError exception I do "smem -w -K a.txt -R 2048M" and got following error: zhichyu@w-shpd-zcyu:~/sftw4ubuntu$ smem-0.1/smem -w -K a.txt -R 2048M size: 'a.txt': No such file Traceback (most recent call last): File "smem-0.1/smem", line 607, in showsystem() File "smem-0.1/smem", line 361, in showsystem k = kernelsize() File "smem-0.1/smem", line 77, in kernelsize d = os.popen("size %s" % options.kernel).readlines()[1] IndexError: list index out of range The root cause is that os.popen("size a.txt") returns only one line. If the user provides an invalid kernel image file path, I think it's better to assume the image size is zero than raise an exception. --- smem | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/smem b/smem index 4d4f2e1..fa3275b 100755 --- a/smem +++ b/smem @@ -83,8 +83,11 @@ _kernelsize = 0 def kernelsize(): global _kernelsize if not _kernelsize and options.kernel: - d = os.popen("size %s" % options.kernel).readlines()[1] - _kernelsize = int(d.split()[3]) / 1024 + try: + d = os.popen("size %s" % options.kernel).readlines()[1] + _kernelsize = int(d.split()[3]) / 1024 + except: + pass return _kernelsize def pidmaps(pid):