From f97b815a2f8ab34e61a38af416d9f876f61b42bd Mon Sep 17 00:00:00 2001 From: Jan Synacek Date: Fri, 25 Apr 2014 09:05:47 +0200 Subject: logicalfile: respect configuration when creating symlinks --- src/logicalfile/LMI_SymbolicLinkProvider.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/logicalfile/LMI_SymbolicLinkProvider.c b/src/logicalfile/LMI_SymbolicLinkProvider.c index 8060307..e200316 100644 --- a/src/logicalfile/LMI_SymbolicLinkProvider.c +++ b/src/logicalfile/LMI_SymbolicLinkProvider.c @@ -92,7 +92,9 @@ static CMPIStatus LMI_SymbolicLinkCreateInstance( const char *path = get_string_property_from_instance(ci, "Name"); const char *target = get_string_property_from_instance(ci, "TargetFile"); - if (symlink(target, path) < 0) { + bool allow = lmi_read_config_boolean("LMI_SymbolicLink", "AllowSymlink"); + + if (allow && symlink(target, path) < 0) { char errmsg[BUFLEN]; char strerr[BUFLEN]; snprintf(errmsg, BUFLEN, "Can't create symlink: %s pointing to %s (%s)", @@ -100,6 +102,10 @@ static CMPIStatus LMI_SymbolicLinkCreateInstance( strerror_r(errno, strerr, BUFLEN)); CMReturnWithChars(_cb, CMPI_RC_ERR_FAILED, errmsg); } + if (allow == false) { + CMReturnWithChars(_cb, CMPI_RC_ERR_FAILED, + "Can't create symlink: disabled by provider configuration"); + } return CMReturnObjectPath(cr, iop); } -- cgit