Enhanced "ChangeToWolfRoot" to report error if the root was not found. Also fixed the depth limit.

This commit is contained in:
David Garske
2015-10-29 10:45:37 -07:00
parent f977caa492
commit dacfd84bea

View File

@@ -1172,29 +1172,35 @@ static INLINE int OpenNitroxDevice(int dma_mode,int dev_id)
static INLINE int ChangeToWolfRoot(void) static INLINE int ChangeToWolfRoot(void)
{ {
int depth; #if !defined(NO_FILESYSTEM)
XFILE file; int depth;
char path[MAX_PATH]; XFILE file;
XMEMSET(path, 0, MAX_PATH); char path[MAX_PATH];
XMEMSET(path, 0, MAX_PATH);
for(depth = 0; depth < MAX_WOLF_ROOT_DEPTH; depth++) { for(depth = 0; depth <= MAX_WOLF_ROOT_DEPTH; depth++) {
file = XFOPEN(ntruCert, "rb"); file = XFOPEN(ntruKey, "rb");
if (file != XBADFILE) { if (file != XBADFILE) {
XFCLOSE(file); XFCLOSE(file);
break; return depth;
}
#ifdef USE_WINDOWS_API
XSTRNCAT(path, "..\\", MAX_PATH);
SetCurrentDirectoryA(path);
#else
XSTRNCAT(path, "../", MAX_PATH);
if (chdir(path) < 0) {
printf("chdir to %s failed\n", path);
break;
} }
#endif #ifdef USE_WINDOWS_API
} XSTRNCAT(path, "..\\", MAX_PATH);
return depth; SetCurrentDirectoryA(path);
#else
XSTRNCAT(path, "../", MAX_PATH);
if (chdir(path) < 0) {
printf("chdir to %s failed\n", path);
break;
}
#endif
}
err_sys("wolf root not found");
return -1;
#else
return 0;
#endif
} }
#endif /* !defined(WOLFSSL_MDK_ARM) && !defined(WOLFSSL_KEIL_FS) && !defined(WOLFSSL_TIRTOS) */ #endif /* !defined(WOLFSSL_MDK_ARM) && !defined(WOLFSSL_KEIL_FS) && !defined(WOLFSSL_TIRTOS) */