diff options
author | Jan Synacek <[email protected]> | 2014-04-25 09:05:47 +0200 |
---|---|---|
committer | Jan Synacek <[email protected]> | 2014-04-28 08:52:12 +0200 |
commit | f97b815a2f8ab34e61a38af416d9f876f61b42bd (patch) | |
tree | de1683504e00ed1cfd1034c9ccce0ff138dbdba9 | |
parent | 97932ae912ed2018a283451d2ae4e3002f9ce4ec (diff) | |
download | openlmi-providers-f97b815a2f8ab34e61a38af416d9f876f61b42bd.tar.gz openlmi-providers-f97b815a2f8ab34e61a38af416d9f876f61b42bd.tar.xz openlmi-providers-f97b815a2f8ab34e61a38af416d9f876f61b42bd.zip |
logicalfile: respect configuration when creating symlinks
-rw-r--r-- | src/logicalfile/LMI_SymbolicLinkProvider.c | 8 |
1 files changed, 7 insertions, 1 deletions
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); } |