Signed-off-by: Richard Marko <rmarko(a)redhat.com>
---
src/plugins/abrt-action-ureport | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/plugins/abrt-action-ureport b/src/plugins/abrt-action-ureport
index 44575d8..ecc03ee 100755
--- a/src/plugins/abrt-action-ureport
+++ b/src/plugins/abrt-action-ureport
@@ -54,7 +54,11 @@ if __name__ == "__main__":
set_verbosity(verbose)
- dirname = os.getcwd()
+ # getcwd might fail if cwd was deleted
+ try:
+ dirname = os.getcwd()
+ except OSError:
+ sys.exit(1)
dd = dd_opendir(dirname, 0)
if not dd:
--
1.8.3.1
Show replies by date
Now it won't crash when its working directory is deleted
or when it's not able to spawn a process or it tries to spawn
missing binary. It spits proper error message instead of exception.
Signed-off-by: Richard Marko <rmarko(a)redhat.com>
---
src/plugins/abrt-action-ureport | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/plugins/abrt-action-ureport b/src/plugins/abrt-action-ureport
index 44575d8..4fac62d 100755
--- a/src/plugins/abrt-action-ureport
+++ b/src/plugins/abrt-action-ureport
@@ -13,7 +13,12 @@ from report import dd_opendir, DD_FAIL_QUIETLY_ENOENT
from reportclient import _, set_verbosity, error_msg_and_die, error_msg, log1, log
def spawn_and_wait(prog):
- return os.spawnlp(os.P_WAIT, prog, prog)
+ try:
+ return os.spawnlp(os.P_WAIT, prog, prog)
+ except OSError as err:
+ error_msg(_("Unable to start '%s', error message was:
'%s'"),
+ prog, err)
+ return -1
def try_parse_number(dd, filename):
try:
@@ -54,7 +59,12 @@ if __name__ == "__main__":
set_verbosity(verbose)
- dirname = os.getcwd()
+ # getcwd might fail if cwd was deleted
+ try:
+ dirname = os.getcwd()
+ except OSError as err:
+ error_msg_and_die(_("Unable to get current working directory as"
+ " it was probably deleted"))
dd = dd_opendir(dirname, 0)
if not dd:
@@ -111,3 +121,5 @@ if __name__ == "__main__":
dd.save_text("ureports_counter", str(ureports_counter + 1))
dd.close()
sys.exit(exitcode)
+ else:
+ error_msg_and_die("reporter-ureport failed with exit code %d" %
exitcode)
--
1.8.3.1