diff options
author | Erik Troan <ewt@redhat.com> | 2000-04-24 19:31:45 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 2000-04-24 19:31:45 +0000 |
commit | 24b545681ba66f05404993011c90632f91596e2a (patch) | |
tree | 1c13113c9ee7c70513b4e430e37f100d2b5fbb72 /loader | |
parent | cc50919d096eb72765031f831aa71cfe0c9636c4 (diff) | |
download | anaconda-24b545681ba66f05404993011c90632f91596e2a.tar.gz anaconda-24b545681ba66f05404993011c90632f91596e2a.tar.xz anaconda-24b545681ba66f05404993011c90632f91596e2a.zip |
need to % expand passwords
Diffstat (limited to 'loader')
-rw-r--r-- | loader/loader.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/loader/loader.c b/loader/loader.c index fc781366d..38de60a1b 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -1017,20 +1017,28 @@ static char * mountUrlImage(struct installMethod * method, } i = 0; + login = ""; /* password w/o login isn't usefull */ - if (strlen(ui.login)) { + if (ui.login && strlen(ui.login)) { i += strlen(ui.login) + 5; if (strlen(ui.password)) - i += strlen(ui.password) + 5; + i += 3*strlen(ui.password) + 5; + if (ui.login || ui.password) { login = alloca(i); - sprintf(login, "%s%s%s@", - ui.login, - ui.password ? ":" : "", - ui.password ? ui.password : ""); + strcpy(login, ui.login); + if (ui.password) { + char * chptr; + char code[4]; + + strcat(login, ":"); + for (chptr = ui.password; *chptr; chptr++) { + sprintf(code, "%%%2x", *chptr); + strcat(login, code); + } + strcat(login, "@"); + } } - } else { - login = ""; } url = malloc(strlen(ui.prefix) + 25 + strlen(ui.address) + strlen(login)); |