diff options
Diffstat (limited to 'source3/param/loadparm.c')
-rw-r--r-- | source3/param/loadparm.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 8006167fe5..278d176bd8 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -2796,23 +2796,19 @@ static bool handle_copy(struct loadparm_context *unused, int snum, const char *p { bool bRetval; int iTemp; - struct loadparm_service serviceTemp; - - string_set(ptr, pszParmValue); - - init_service(&serviceTemp); bRetval = false; DEBUG(3, ("Copying service from service %s\n", pszParmValue)); - if ((iTemp = getservicebyname(pszParmValue, &serviceTemp)) >= 0) { + if ((iTemp = getservicebyname(pszParmValue, NULL)) >= 0) { if (iTemp == iServiceIndex) { DEBUG(0, ("Can't copy service %s - unable to copy self!\n", pszParmValue)); } else { copy_service(ServicePtrs[iServiceIndex], - &serviceTemp, + ServicePtrs[iTemp], ServicePtrs[iServiceIndex]->copymap); + string_set(ptr, pszParmValue); bRetval = true; } } else { @@ -2820,7 +2816,6 @@ static bool handle_copy(struct loadparm_context *unused, int snum, const char *p bRetval = false; } - free_service(&serviceTemp); return (bRetval); } |