free() destroys GetLastError, so preserve it before giving back all the
buffers. Then if the create process failed we have something sensible to
log.
Change-Id: Ibb8bb870230f9c4e96f5ec9d4948552616cd7456
Reviewed-on: http://gerrit.openafs.org/3175
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
DWORD monitorId, createFlags;
BOOL passingBuffer = (sdatap != NULL && sdatalen > 0);
BOOL fsuccess;
+ int lasterror;
/* verify arguments */
if (!spath || !sargv) {
&startInfo, /* startup info block */
&procInfo);
+ lasterror = GetLastError();
free(pathbuf);
free(argbuf);
free(envbuf);
if (!fsuccess) {
/* failed to spawn process */
- errno = nterr_nt2unix(GetLastError(), ENOENT);
+ errno = nterr_nt2unix(lasterror, ENOENT);
(void)pthread_mutex_lock(&procTableLock);
procTable[tidx].p_reserved = FALSE; /* mark entry as not reserved */