Skip to content
Snippets Groups Projects
Commit 5b178dc7 authored by rswindell's avatar rswindell
Browse files

Trying to fix problems with security access to recycle semaphore.

parent d74267e8
No related branches found
No related tags found
No related merge requests found
......@@ -368,6 +368,9 @@ static void WINAPI svc_start(sbbs_ntsvc_t* svc, DWORD argc, LPTSTR *argv)
{
DWORD i;
char* arg;
char name[256];
SECURITY_ATTRIBUTES secattr;
SECURITY_DESCRIPTOR secdesc;
for(i=0;i<argc;i++) {
arg=argv[i];
......@@ -380,13 +383,18 @@ static void WINAPI svc_start(sbbs_ntsvc_t* svc, DWORD argc, LPTSTR *argv)
svc_lputs(svc,"Starting service");
if((svc->status_handle = RegisterServiceCtrlHandler(svc->name, svc->ctrl_handler))==0) {
fprintf(stderr,"!ERROR %d registering service control handler\n",GetLastError());
svc_lputs(NULL,"!ERROR registering service control handler");
return;
}
if(svc->recycle_sem!=NULL
&& ((*svc->recycle_sem)=CreateSemaphore(NULL,0,1,svc->name))==NULL)
svc_lputs(svc,"!Error creating recycle semaphore");
if(svc->recycle_sem!=NULL) {
InitializeSecurityDescriptor(&secdesc,SECURITY_DESCRIPTOR_REVISION);
secattr.nLength=sizeof(secattr);
secattr.lpSecurityDescriptor=&secdesc;
sprintf(name,"%sRecycle",svc->name);
if(((*svc->recycle_sem)=CreateSemaphore(&secattr,0,1,name))==NULL)
svc_lputs(NULL,"!ERROR creating recycle semaphore");
}
memset(&svc->status,0,sizeof(SERVICE_STATUS));
svc->status.dwServiceType=SERVICE_WIN32_SHARE_PROCESS;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment