]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/network/serv_netconfig.c
NETP: extract password string when we need it. else it might be overwritten meanwhile.
[citadel.git] / citadel / modules / network / serv_netconfig.c
index f0f487d1769f0767de30b8bb163d560eb3786029..c5c457adc7dc58a33044ee631a8b8736504c3858 100644 (file)
@@ -471,7 +471,6 @@ void cmd_netp(char *cmdbuf)
        char *node;
        StrBuf *NodeStr;
        long nodelen;
-       char pass[256];
        int v;
 
        const StrBuf *secret = NULL;
@@ -481,7 +480,6 @@ void cmd_netp(char *cmdbuf)
        /* Authenticate */
        node = CCC->curr_user;
        nodelen = extract_token(CCC->curr_user, cmdbuf, 0, '|', sizeof CCC->curr_user);
-       extract_token(CCC->user.password, cmdbuf, 1, '|', sizeof pass);
        NodeStr = NewStrBufPlain(node, nodelen);
        /* load the IGnet Configuration to check node validity */
        working_ignetcfg = load_ignetcfg();
@@ -499,7 +497,8 @@ void cmd_netp(char *cmdbuf)
                return;
        }
 
-       if (strcasecmp(pass, ChrPtr(secret))) {
+       extract_token(CCC->user.password, cmdbuf, 1, '|', sizeof CCC->user.password);
+       if (strcasecmp(CCC->user.password, ChrPtr(secret))) {
                snprintf(err_buf, sizeof err_buf,
                        "A Citadel server at %s [%s] failed to authenticate as network node \"%s\".\n",
                        CC->cs_host, CC->cs_addr, node