diff -r 008c75a5e08d -r f98d77376544 librazor/root.c --- a/librazor/root.c Mon Jul 04 10:48:18 2016 +0100 +++ b/librazor/root.c Fri Jun 08 18:02:33 2018 +0100 @@ -1,7 +1,7 @@ /* * Copyright (C) 2008 Kristian Høgsberg * Copyright (C) 2008 Red Hat, Inc - * Copyright (C) 2009, 2011, 2012, 2014, 2016 J. Ali Harlow + * Copyright (C) 2009, 2011, 2012, 2014, 2016, 2018 J. Ali Harlow * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -67,6 +67,7 @@ #endif static char *razor_database_uri = RAZOR_DATABASE_URI; static int razor_database_uri_alloced = FALSE; +static int razor_database_uri_default = TRUE; struct razor_root { struct razor_set *system; @@ -107,9 +108,11 @@ if (database_uri) { razor_database_uri = strdup(database_uri); razor_database_uri_alloced = TRUE; + razor_database_uri_default = FALSE; } else { razor_database_uri = RAZOR_DATABASE_URI; razor_database_uri_alloced = FALSE; + razor_database_uri_default = TRUE; } } @@ -223,14 +226,13 @@ return NULL; } - r = razor_set_acquire_lock(image->system, lock_uri, 1); + r = razor_set_acquire_lock(image->system, lock_uri, 1, error); free(lock_uri); if (r < 0) { - razor_set_error(error, RAZOR_GENERAL_ERROR, - RAZOR_GENERAL_ERROR_DATABASE_LOCKED, NULL, - "Failed to acquire exclusive system lock"); + if (error && razor_database_uri_default) + razor_error_set_object(*error, root_uri); razor_set_unref(image->system); free(image); return NULL; @@ -277,14 +279,13 @@ return NULL; } - r = razor_set_acquire_lock(set, uri, 0); + r = razor_set_acquire_lock(set, uri, 0, error); free(uri); if (r < 0) { - razor_set_error(error, RAZOR_GENERAL_ERROR, - RAZOR_GENERAL_ERROR_DATABASE_LOCKED, NULL, - "Failed to acquire non-exclusive system lock"); + if (error && razor_database_uri_default) + razor_error_set_object(*error, root_uri); razor_set_unref(set); return NULL; }