Delete a security descriptor.
********************************************************************/
-BOOL delete_share_security(const struct share_params *params)
+BOOL delete_share_security(const char *servicename)
{
TDB_DATA kbuf;
- fstring key;
+ char *key;
- slprintf(key, sizeof(key)-1, "SECDESC/%s",
- lp_servicename(params->service));
+ if (!(key = talloc_asprintf(talloc_tos(), "SECDESC/%s",
+ servicename))) {
+ return False;
+ }
kbuf = string_term_tdb_data(key);
if (tdb_trans_delete(share_tdb, kbuf) != 0) {
- DEBUG(0,("delete_share_security: Failed to delete entry for share %s\n",
- lp_servicename(params->service) ));
+ DEBUG(0, ("delete_share_security: Failed to delete entry for "
+ "share %s\n", servicename));
return False;
}
/* Remove from the share ACL db. */
DEBUG(10,("load_usershare_shares: Removing deleted usershare %s\n",
lp_servicename(iService) ));
- delete_share_security(snum2params_static(iService));
+ delete_share_security(lp_servicename(iService));
free_service_byindex(iService);
}
}
if (!usershare_exists(iService, &last_mod)) {
/* Remove the share security tdb entry for it. */
- delete_share_security(snum2params_static(iService));
+ delete_share_security(lp_servicename(iService));
/* Remove it from the array. */
free_service_byindex(iService);
/* Doesn't exist anymore. */
}
/* Delete the SD in the database. */
- delete_share_security(params);
+ delete_share_security(lp_servicename(params->service));
lp_killservice(params->service);