Quantcast
Channel: Forum - Recent Threads
Viewing all articles
Browse latest Browse all 5781

SIGBUS: Bus error issue

$
0
0

Hello,

I'm using the SK-S7G2 and I wrote a server program with TLS and I am able to send packets to a client program successfully. However, at some point my program stops as if it hits a breakpoint after continuously sending packets. I get this bus error at memcpy() (pls see attached)

These are the lines of code that I loop...

This just loops continuously. I wait for a message from the client and I send something back. It works for a number of iterations and then error occurs. My gut feel is that it has something to do with packet pool overflowing. I tried a few things like adding NX_release_packet(Send_Packet) and nx_transmit_release_packet(Send_Packet) after the last line in the loop but I still got the problem. Any idea on how to solve this?

Thanks

AJ

 

loop()

{

        wait for packet from client

        after receiving from client, respond..

        status = nx_secure_tls_packet_allocate(&TLS_Session, &g_packet_pool0, &Send_Packet, NX_WAIT_FOREVER);
        status = nx_packet_data_append(Send_Packet, (char *)(file_obj + z), (unsigned long)size, &g_packet_pool0, NX_WAIT_FOREVER);
        status = nx_secure_tls_session_send(&TLS_Session, Send_Packet, NX_WAIT_FOREVER);

        z = z + file_obj_chunk_size;  //chunk size is 512 bytes

       status = nx_secure_tls_packet_allocate(&TLS_Session, &g_packet_pool0, &Send_Packet, NX_WAIT_FOREVER);
       status = nx_packet_data_append(Send_Packet, (char *)Http_End_Chunk, sizeof(Http_End_Chunk)-1, &g_packet_pool0, NX_WAIT_FOREVER);
       status = nx_secure_tls_session_send(&TLS_Session, Send_Packet, NX_WAIT_FOREVER);

        write_console_msg("\n\n\rTLS clean up...");
        status = nx_secure_tls_session_end(&TLS_Session, 50);
        if(status != NX_SUCCESS)
        {
            write_console_msg("\n\rTLS end error");
            ulong_to_hex_ascii(status, val_array);
            write_console_msg("\n\rstatus = ");
            write_console_msg(val_array);
        }//end if(status != NX_SUCCESS)
        status = nx_secure_tls_session_delete(&TLS_Session);
        if(status != NX_SUCCESS)
        {
            write_console_msg("\n\rTLS end error");
            ulong_to_hex_ascii(status, val_array);
            write_console_msg("\n\rstatus = ");
            write_console_msg(val_array);
        }//end if(status != NX_SUCCESS)

        write_console_msg("\n\n\rSocket clean up...");
        status = nx_tcp_socket_disconnect(&TCP_Socket[k], 50);
        if(status != NX_SUCCESS)
        {
            write_console_msg("\n\rSocket disconnect error");
            ulong_to_hex_ascii(status, val_array);
            write_console_msg("\n\rstatus = ");
            write_console_msg(val_array);
        }//end if(status != NX_SUCCESS)
        status = nx_tcp_socket_info_get(&TCP_Socket[k],
                               0, 0, 0, 0, 0, 0, 0, &state, 0, 0, 0);
        write_console_msg("\n\rSocket ");
        ulong_to_ascii(k, val_array);
        write_console_msg(val_array);
        write_console_msg(" state = ");
        ulong_to_hex_ascii(state, val_array);
        write_console_msg(val_array);
        if (NX_TCP_CLOSED != state)
        {
            write_console_msg("\n\rUnaccepting socket... ");
            status = nx_tcp_server_socket_unaccept(&TCP_Socket[k]);
            if(status != NX_SUCCESS)
            {
                write_console_msg("\n\rSocket unaccept error");
                ulong_to_hex_ascii(status, val_array);
                write_console_msg("\n\rstatus = ");
                write_console_msg(val_array);
            }//end if(status != NX_SUCCESS)
            status = nx_tcp_socket_info_get(&TCP_Socket[k],
                                   0, 0, 0, 0, 0, 0, 0, &state, 0, 0, 0);
            write_console_msg("\n\rSocket ");
            ulong_to_ascii(k, val_array);
            write_console_msg(val_array);
            write_console_msg(" state = ");
            ulong_to_hex_ascii(state, val_array);
            write_console_msg(val_array);
            status = nx_tcp_server_socket_relisten(&g_ip0, 443, &TCP_Socket[k]);
            if(status != NX_SUCCESS)
            {
                write_console_msg("\n\rRe-listen error");
                ulong_to_hex_ascii(status, val_array);
                write_console_msg("\n\rstatus = ");
                write_console_msg(val_array);
            }//end if(status != NX_SUCCESS)
        }//end if (NX_TCP_CLOSED != state)

}//end loop


Viewing all articles
Browse latest Browse all 5781

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>