私がやろうとするときはいつでも:
char buffed[1024];
snprintf(buffed, sizeof(buffed), "bash.sh %s &", get_value("request-uri"));
system(buffed);
これは私が使用する機能です:
char *get_value(char *name) {
FORMAT_NODE *node;
#ifdef DEBUG
ASSERT(name);
#endif
if (strlen(name) == 0)
return EMPTY_FIELD;
if ((node = get_field(name))) {
return node->value;
} else {
return EMPTY_FIELD;
}
}
コンパイルは問題ありませんが、セグメンテーション違反が発生してクラッシュする値を出力する必要がある場合はいつでも、誰かが私が間違っていることを説明できますか?
前もって感謝します!
編集:
get_value("request-uri") は私が話しているものであり、文字列でなければなりません
strstr(get_value("request-uri"), "index.php") は完璧に動作します!
ただし、「index.php」は get_value から取得する必要があります
edit2: gdb: プログラムがシグナル SIGSEGV を受信しました。セグメンテーション違反です。/lib64/libc.so.6 からの __strlen_sse2 () の 0x00007ffff73f3321