NETP: extract password string when we need it. else it might be overwritten meanwhile.
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 10 Jun 2012 14:08:46 +0000 (16:08 +0200)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 10 Jun 2012 14:08:46 +0000 (16:08 +0200)
citadel/modules/network/serv_netconfig.c

index 8f1018a4a9961a71cf54c358cd37baf0784407d4..c5c457adc7dc58a33044ee631a8b8736504c3858 100644 (file)
@@ -480,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 CCC->user.password);
        NodeStr = NewStrBufPlain(node, nodelen);
        /* load the IGnet Configuration to check node validity */
        working_ignetcfg = load_ignetcfg();
@@ -498,6 +497,7 @@ void cmd_netp(char *cmdbuf)
                return;
        }
 
+       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",