mirror of
https://github.com/curl/curl.git
synced 2026-07-24 17:27:16 +03:00
tool_getpass: restore UWP getpass_r(), fixup CI builds, fix UWP -Wnull-dereference
- GHA/windows: switch mingw-w64 UWP CI job to use UCRT. `msvcr120_app` was missing `getch()` for example. Follow-up tof988842d85#15637 This job tests compiling for UWP correctly, but the the resulting `curl.exe` still doesn't look like a correct UWP app, now exiting on startup with: `curl: error initializing curl library`. - tool_getpass: restore `getch()` for UWP builds. Follow-up tof988842d85#15637 - schannel: silence `-Werror=null-dereference` warning in mingw-w64 UWP: ``` lib/vtls/schannel_verify.c: In function 'Curl_verify_host': lib/vtls/schannel_verify.c:558:33: error: null pointer dereference [-Werror=null-dereference] 558 | for(i = 0; i < alt_name_info->cAltEntry; ++i) { | ~~~~~~~~~~~~~^~~~~~~~~~~ lib/vtls/schannel_verify.c:559:50: error: null pointer dereference [-Werror=null-dereference] 559 | PCERT_ALT_NAME_ENTRY entry = &alt_name_info->rgAltEntry[i]; | ~~~~~~~~~~~~~^~~~~~~~~~~~ ``` Ref: https://github.com/curl/curl/actions/runs/12022656065/job/33515255397?pr=15638#step:19:27 Follow-up to9640a8ef6f#15421 - GHA/windows: fix `find` command in MSVC job step. Follow-up to5f9411f953#15380 - GHA/windows: drop unnecessary `windowsappcompat` lib from mingw-w64 UWP job. Also drop related MSYS2 package. - GHA/windows: cmake 3.31.0 still invokes `windres` with wrong options with mingw-w64 UPW. Update curl version in comment accordingly. - GHA/windows: tidy up mingw-w64 UWP spec logic, limit it to gcc. - GHA/windows: update comments on `curl.exe` UWP startup errors. Closes #15638
This commit is contained in:
parent
f988842d85
commit
72edb22b8a
3 changed files with 30 additions and 36 deletions
|
|
@ -98,34 +98,27 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
|
|||
|
||||
char *getpass_r(const char *prompt, char *buffer, size_t buflen)
|
||||
{
|
||||
size_t i;
|
||||
fputs(prompt, tool_stderr);
|
||||
#ifdef CURL_WINDOWS_UWP
|
||||
fputs("\n", tool_stderr);
|
||||
if(buflen > 0)
|
||||
buffer[0] = '\0';
|
||||
#else
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for(i = 0; i < buflen; i++) {
|
||||
buffer[i] = (char)getch();
|
||||
if(buffer[i] == '\r' || buffer[i] == '\n') {
|
||||
buffer[i] = '\0';
|
||||
break;
|
||||
}
|
||||
else
|
||||
if(buffer[i] == '\b')
|
||||
/* remove this letter and if this is not the first key, remove the
|
||||
previous one as well */
|
||||
i = i - (i >= 1 ? 2 : 1);
|
||||
for(i = 0; i < buflen; i++) {
|
||||
buffer[i] = (char)getch();
|
||||
if(buffer[i] == '\r' || buffer[i] == '\n') {
|
||||
buffer[i] = '\0';
|
||||
break;
|
||||
}
|
||||
/* since echo is disabled, print a newline */
|
||||
fputs("\n", tool_stderr);
|
||||
/* if user did not hit ENTER, terminate buffer */
|
||||
if(i == buflen)
|
||||
buffer[buflen-1] = '\0';
|
||||
}
|
||||
#endif
|
||||
else
|
||||
if(buffer[i] == '\b')
|
||||
/* remove this letter and if this is not the first key, remove the
|
||||
previous one as well */
|
||||
i = i - (i >= 1 ? 2 : 1);
|
||||
}
|
||||
/* since echo is disabled, print a newline */
|
||||
fputs("\n", tool_stderr);
|
||||
/* if user did not hit ENTER, terminate buffer */
|
||||
if(i == buflen)
|
||||
buffer[buflen-1] = '\0';
|
||||
|
||||
return buffer; /* we always return success */
|
||||
}
|
||||
#define DONE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue