我有以下代码:
char *passwordFunc(const char *s)
{
static char *pw = NULL;
if (strlen(s)) {
pw = s;
}
return pw;
}
void keyboard_interactive(const char *name, int name_len, const char *instr, int instr_len,
int num_prompts, const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts, LIBSSH2_USERAUTH_KBDINT_RESPONSE *res,
void **abstract)
{
char *text = passwordFunc("");
res[0].text = strdup(text);
res[0].length = strlen(text);
}
根据调试器的说法,每次到达带有 的行时strdup(text)
,它都会以 . 崩溃EXC_BAD_ACCESS (code=2, address=0x0)
。
关于正在发生的事情以及如何解决它的任何建议?提前致谢。