@@ -87,9 +87,11 @@ struct WOLFSSHD_CONFIG {
8787 char * authKeysFile ;
8888 char * forceCmd ;
8989 char * pidFile ;
90+ #ifdef USE_WINDOWS_API
9091 char * winUserStores ;
9192 char * winUserDwFlags ;
9293 char * winUserPvPara ;
94+ #endif /* USE_WINDOWS_API */
9395 WOLFSSHD_CONFIG * next ; /* next config in list */
9496 long loginTimer ;
9597 word16 port ;
@@ -331,9 +333,11 @@ void wolfSSHD_ConfigFree(WOLFSSHD_CONFIG* conf)
331333#endif /* WOLFSSH_CERTS */
332334#endif /* USE_WINDOWS_API */
333335 FreeString (& current -> pidFile , heap );
336+ #ifdef USE_WINDOWS_API
334337 FreeString (& current -> winUserStores , heap );
335338 FreeString (& current -> winUserDwFlags , heap );
336339 FreeString (& current -> winUserPvPara , heap );
340+ #endif /* USE_WINDOWS_API */
337341
338342 WFREE (current , heap , DYNTYPE_SSHD );
339343 current = next ;
@@ -381,13 +385,16 @@ enum {
381385 OPT_BANNER = 23 ,
382386 OPT_TRUSTED_SYSTEM_CA_KEYS = 24 ,
383387 OPT_TRUSTED_USER_CA_STORE = 25 ,
388+ #ifdef USE_WINDOWS_API
384389 OPT_WIN_USER_STORES = 26 ,
385390 OPT_WIN_USER_DW_FLAGS = 27 ,
386- OPT_WIN_USER_PV_PARA = 28
391+ OPT_WIN_USER_PV_PARA = 28 ,
392+ #endif /* USE_WINDOWS_API */
387393};
388394enum {
389- NUM_OPTIONS = 29
395+ NUM_OPTIONS = 26
390396#ifdef USE_WINDOWS_API
397+ + 3
391398#ifdef WOLFSSH_CERTS
392399 + 3
393400#endif /* WOLFSSH_CERTS */
@@ -432,9 +439,11 @@ static const CONFIG_OPTION options[NUM_OPTIONS] = {
432439 {OPT_BANNER , "Banner" },
433440 {OPT_TRUSTED_SYSTEM_CA_KEYS , "wolfSSH_TrustedSystemCAKeys" },
434441 {OPT_TRUSTED_USER_CA_STORE , "wolfSSH_TrustedUserCaStore" },
442+ #ifdef USE_WINDOWS_API
435443 {OPT_WIN_USER_STORES , "wolfSSH_WinUserStores" },
436444 {OPT_WIN_USER_DW_FLAGS , "wolfSSH_WinUserDwFlags" },
437- {OPT_WIN_USER_PV_PARA , "wolfSSH_WinUserPvPara" }
445+ {OPT_WIN_USER_PV_PARA , "wolfSSH_WinUserPvPara" },
446+ #endif /* USE_WINDOWS_API */
438447};
439448
440449/* returns WS_SUCCESS on success */
@@ -1088,6 +1097,7 @@ static int HandleConfigOption(WOLFSSHD_CONFIG** conf, int opt,
10881097 case OPT_TRUSTED_USER_CA_STORE :
10891098 ret = wolfSSHD_ConfigSetUserCAStore (* conf , value );
10901099 break ;
1100+ #ifdef USE_WINDOWS_API
10911101 case OPT_WIN_USER_STORES :
10921102 ret = wolfSSHD_ConfigSetWinUserStores (* conf , value );
10931103 break ;
@@ -1097,6 +1107,7 @@ static int HandleConfigOption(WOLFSSHD_CONFIG** conf, int opt,
10971107 case OPT_WIN_USER_PV_PARA :
10981108 ret = wolfSSHD_ConfigSetWinUserPvPara (* conf , value );
10991109 break ;
1110+ #endif /* USE_WINDOWS_API */
11001111 #ifdef USE_WINDOWS_API
11011112 #ifdef WOLFSSH_CERTS
11021113 case OPT_HOST_KEY_STORE :
@@ -1474,11 +1485,13 @@ int wolfSSHD_ConfigSetUserCAStore(WOLFSSHD_CONFIG* conf, const char* value)
14741485 return ret ;
14751486}
14761487
1477- char * wolfSSHD_ConfigGetWinUserStores (WOLFSSHD_CONFIG * conf ) {
1488+ #ifdef USE_WINDOWS_API
1489+ char * wolfSSHD_ConfigGetWinUserStores (WOLFSSHD_CONFIG * conf )
1490+ {
14781491 if (conf != NULL ) {
14791492 if (conf -> winUserStores == NULL ) {
14801493 /* If no value was specified, default to CERT_STORE_PROV_SYSTEM */
1481- CreateString (& conf -> winUserStores , "CERT_STORE_PROV_SYSTEM" ,
1494+ CreateString (& conf -> winUserStores , "CERT_STORE_PROV_SYSTEM" ,
14821495 (int )WSTRLEN ("CERT_STORE_PROV_SYSTEM" ), conf -> heap );
14831496 }
14841497
@@ -1488,24 +1501,32 @@ char* wolfSSHD_ConfigGetWinUserStores(WOLFSSHD_CONFIG* conf) {
14881501 return NULL ;
14891502}
14901503
1491- int wolfSSHD_ConfigSetWinUserStores (WOLFSSHD_CONFIG * conf , const char * value ) {
1504+ int wolfSSHD_ConfigSetWinUserStores (WOLFSSHD_CONFIG * conf , const char * value )
1505+ {
14921506 int ret = WS_SUCCESS ;
14931507
14941508 if (conf == NULL ) {
14951509 ret = WS_BAD_ARGUMENT ;
14961510 }
14971511
1498- ret = CreateString (& conf -> winUserStores , value , (int )WSTRLEN (value ), conf -> heap );
1512+ if (ret == WS_SUCCESS ) {
1513+ ret = CreateString (& conf -> winUserStores , value ,
1514+ (int )WSTRLEN (value ), conf -> heap );
1515+ }
14991516
15001517 return ret ;
15011518}
15021519
1503- char * wolfSSHD_ConfigGetWinUserDwFlags (WOLFSSHD_CONFIG * conf ) {
1520+ char * wolfSSHD_ConfigGetWinUserDwFlags (WOLFSSHD_CONFIG * conf )
1521+ {
15041522 if (conf != NULL ) {
15051523 if (conf -> winUserDwFlags == NULL ) {
1506- /* If no value was specified, default to CERT_SYSTEM_STORE_CURRENT_USER */
1507- CreateString (& conf -> winUserDwFlags , "CERT_SYSTEM_STORE_CURRENT_USER" ,
1508- (int )WSTRLEN ("CERT_SYSTEM_STORE_CURRENT_USER" ), conf -> heap );
1524+ /* If no value was specified, default to
1525+ * CERT_SYSTEM_STORE_CURRENT_USER */
1526+ CreateString (& conf -> winUserDwFlags ,
1527+ "CERT_SYSTEM_STORE_CURRENT_USER" ,
1528+ (int )WSTRLEN ("CERT_SYSTEM_STORE_CURRENT_USER" ),
1529+ conf -> heap );
15091530 }
15101531
15111532 return conf -> winUserDwFlags ;
@@ -1514,23 +1535,29 @@ char* wolfSSHD_ConfigGetWinUserDwFlags(WOLFSSHD_CONFIG* conf) {
15141535 return NULL ;
15151536}
15161537
1517- int wolfSSHD_ConfigSetWinUserDwFlags (WOLFSSHD_CONFIG * conf , const char * value ) {
1538+ int wolfSSHD_ConfigSetWinUserDwFlags (WOLFSSHD_CONFIG * conf , const char * value )
1539+ {
15181540 int ret = WS_SUCCESS ;
15191541
15201542 if (conf == NULL ) {
15211543 ret = WS_BAD_ARGUMENT ;
15221544 }
15231545
1524- ret = CreateString (& conf -> winUserDwFlags , value , (int )WSTRLEN (value ), conf -> heap );
1546+ if (ret == WS_SUCCESS ) {
1547+ ret = CreateString (& conf -> winUserDwFlags , value ,
1548+ (int )WSTRLEN (value ), conf -> heap );
1549+ }
15251550
15261551 return ret ;
15271552}
15281553
1529- char * wolfSSHD_ConfigGetWinUserPvPara (WOLFSSHD_CONFIG * conf ) {
1554+ char * wolfSSHD_ConfigGetWinUserPvPara (WOLFSSHD_CONFIG * conf )
1555+ {
15301556 if (conf != NULL ) {
15311557 if (conf -> winUserPvPara == NULL ) {
15321558 /* If no value was specified, default to MY */
1533- CreateString (& conf -> winUserPvPara , "MY" , (int )WSTRLEN ("MY" ), conf -> heap );
1559+ CreateString (& conf -> winUserPvPara , "MY" ,
1560+ (int )WSTRLEN ("MY" ), conf -> heap );
15341561 }
15351562
15361563 return conf -> winUserPvPara ;
@@ -1539,17 +1566,22 @@ char* wolfSSHD_ConfigGetWinUserPvPara(WOLFSSHD_CONFIG* conf) {
15391566 return NULL ;
15401567}
15411568
1542- int wolfSSHD_ConfigSetWinUserPvPara (WOLFSSHD_CONFIG * conf , const char * value ) {
1569+ int wolfSSHD_ConfigSetWinUserPvPara (WOLFSSHD_CONFIG * conf , const char * value )
1570+ {
15431571 int ret = WS_SUCCESS ;
15441572
15451573 if (conf == NULL ) {
15461574 ret = WS_BAD_ARGUMENT ;
15471575 }
15481576
1549- ret = CreateString (& conf -> winUserPvPara , value , (int )WSTRLEN (value ), conf -> heap );
1577+ if (ret == WS_SUCCESS ) {
1578+ ret = CreateString (& conf -> winUserPvPara , value ,
1579+ (int )WSTRLEN (value ), conf -> heap );
1580+ }
15501581
15511582 return ret ;
15521583}
1584+ #endif /* USE_WINDOWS_API */
15531585
15541586char * wolfSSHD_ConfigGetUserCAKeysFile (const WOLFSSHD_CONFIG * conf )
15551587{
0 commit comments