Breakpoint 1, keyless_response_recv (s=0xa22f30) at keyless.c:317
317 k = &s->ssl_keyless;
(gdb)
318 rbuf = k->response.rbuf;
(gdb)
327 if (rbuf == NULL) {
(gdb)
328 rbuf = BUF_MEM_new();
(gdb)
329 if (rbuf == NULL) {
(gdb)
333 if (!BUF_MEM_grow(rbuf, KEY_SERVER_BUF_LENGTH)) {
(gdb)
338 k->response.rbuf = rbuf;
(gdb)
341 n = SSL_read(k->sslfd, rbuf->data + k->response.recv_n, rbuf->length - k->response.recv_n);
(gdb) p k->sslfd
$1 = (SSL *) 0xb01650
(gdb) p rebuf->data
No symbol "rebuf" in current context.
(gdb) p s->ssl_keyless
$2 = {enable = 1, use = 1, state = 4, error = 0, fd = 10, shutdown = 0,
md_buf = "266220Γ} 23337b273224'Q373B374267371370323333 23275 27214z361362tPk^ƨ356g214ƛ355224 37234ue223 36330371271373L263ڱ300376f331 65265~316kg",
p = 0xa5d9eb "ng1 20 60 16 06 03U 04afaBeijing1 21 60 17 06 03U 04nfbKingsoft1 16 60f 06 03U 04vf\034 60 32 06 03U 04 03f 23keyserver.com0 36 27r161222085337Z 27r170121085337Z0p1v0t 06 03U 04 06 23 02CN1 20 60 16 06 03U 04bfaBeijing1 20 60 16 06 03U 04afaBeijing1 21 60 17 06 03U 04nfbKingsoft1 16 60f 06 03U 04vf 05"..., n = 69, data = 0x0, request = {wbuf = 0xa8c5f0, sent_n = 102}, response = {rbuf = 0xb01480, recv_n = 0, header_ok = 0, length_in_header = 0,
response_opcode = 0 ' 00', payload = 0x0, padding = 0x0}, sslfd = 0xb01650}
(gdb) p s->ssl_keyless->sslfd
$3 = (SSL *) 0xb01650
(gdb) p k->response.recv_n
$4 = 0
(gdb) n
343 if (n == 0)
(gdb) p n
$5 = 1027
(gdb) n
351 else if (n == -1) {
(gdb) p n
$6 = 1027
(gdb) n
365 k->response.recv_n += n;
(gdb) p k->response.recv_n
$7 = 0
(gdb) n
367 if (k->response.header_ok == 0) {
(gdb) p k->response.header_ok
$8 = 0
(gdb) n
368 if (k->response.recv_n < sizeof(struct keyless_header)) {
(gdb) n
373 header = (struct keyless_header*)rbuf->data;
(gdb) n
375 k->response.length_in_header = ntohs(header->length);
(gdb) n
376 if (k->response.length_in_header == 0) {
(gdb)
380 if ((k->response.length_in_header + sizeof(struct keyless_header)) > KEY_SERVER_BUF_LENGTH) {
(gdb)
386 k->response.header_ok = 1;
(gdb)
389 total_length = sizeof(struct keyless_header) + k->response.length_in_header;
(gdb) p total_length
$9 = 10629736
(gdb) n
390 if (k->response.recv_n < total_length) {
(gdb) p k->response.recv_n
$10 = 1027
(gdb) n
393 } else if (k->response.recv_n > total_length) {
(gdb) n
398 p = rbuf->data + sizeof(struct keyless_header);
(gdb) p p
$11 = 0x379383e680 "S213 37276t"
(gdb) p *p
$12 = 83 'S'
(gdb) n
399 while ((p - rbuf->data) < k->response.recv_n) {
(gdb) n
400 length = ntohs(*(uint16_t*)(p + 1));
(gdb) p length
$13 = 285
(gdb) n
401 switch (p[0]) {
(gdb) n
403 k->response.response_opcode = *(p + 3);
(gdb) p p[0]
$14 = 17 ' 21'
(gdb) n
404 break;
(gdb) n
470 p += length + 3;
(gdb) n
399 while ((p - rbuf->data) < k->response.recv_n) {
(gdb) n
400 length = ntohs(*(uint16_t*)(p + 1));
(gdb)
401 switch (p[0]) {
(gdb)
407 if (length == 1) {
(gdb)
408 switch(*(p+3)) {
(gdb) p p[0]
$15 = 18 ' 22'
(gdb)
$16 = 18 ' 22'
(gdb)
$17 = 18 ' 22'
(gdb) n
413 err = KEYLESS_KEY_NOT_FOUND;
(gdb) n
414 break;
(gdb) n
481 k->error = err;
(gdb) n
482 return -1;
(gdb) n
483 }
(gdb) n
ssl3_send_server_key_exchange_keyless (s=0xa22f30) at s3_srvr.c:2565
2565 system("echo 111111111111111111111 >> /home/sunp/abc");
(gdb) n
Detaching after fork from child process 21392.
2566 if (s->ssl_keyless.error == KEYLESS_ECONN) {
(gdb) n
2570 } else if (s->ssl_keyless.error == KEYLESS_EAGAIN) {
(gdb) n
2573 } else if (s->ssl_keyless.error != 0) {
(gdb) n
2574 al = SSL_AD_HANDSHAKE_FAILURE;
(gdb) n
2575 SSLerr(SSL_F_KEYLESS_SSL3_SEND_SERVER_KEY_EXCHANGE,
(gdb) n
2577 goto k_err;
(gdb) n
2613 s->ssl_keyless.error = KEYLESS_ERROR;
(gdb) n
2614 system("echo 7777777777777777777777 >> /home/sunp/abc");
(gdb) n
Detaching after fork from child process 21463.
2615 s->ssl_keyless.use--;
(gdb)
2616 s->ssl_keyless.state = KEYLESS_STATE_INIT;
(gdb)
2617 keyless_clean(s);
(gdb)
2619 system("echo 88888888888888888888888888 >> /home/sunp/abc");
(gdb) n
Detaching after fork from child process 21474.
2620 ssl3_send_alert(s, SSL3_AL_FATAL, al);
(gdb) n
2622 system("echo 000000000000000000000000000 >> /home/sunp/abc");
(gdb) n
Detaching after fork from child process 21485.
2623 return (-1);
(gdb) n
2624 }
(gdb) n
ssl3_accept (s=0xa22f30) at s3_srvr.c:502
502 if (ret <= 0)
(gdb) n
503 goto end;
(gdb) n
905 s->in_handshake--;
(gdb) n
906 if (cb != NULL)
(gdb) n
907 cb(s, SSL_CB_ACCEPT_EXIT, ret);
(gdb) n
908 return (ret);
(gdb) n
909 }
(gdb) n
SSL_do_handshake (s=0xa22f30) at ssl_lib.c:2909
2909 return (ret);
(gdb) n
2910 }
(gdb) n
ngx_http_ssl_keyless_handler (ev=0x7f0f7d67a1b0) at src/http/modules/ngx_http_ssl_keyless_module.c:872
872 sslerr = SSL_get_error(req_conn->ssl->connection, n);
(gdb) n
874 if (n == 1 || sslerr == SSL_ERROR_KEYLESS_OK || sslerr == SSL_ERROR_WANT_KEYLESS_CONN) {
(gdb) n
894 if (sslerr == SSL_ERROR_WANT_KEYLESS_READ) {
(gdb) n
906 if (sslerr == SSL_ERROR_WANT_KEYLESS_WRITE) {
(gdb) n
918 if (sslerr == SSL_ERROR_KEYLESS) {
(gdb) n
925 err = (sslerr == SSL_ERROR_SYSCALL) ? ngx_errno : 0;
(gdb) n
927 req_conn->ssl->no_wait_shutdown = 1;
(gdb) n
928 req_conn->ssl->no_send_shutdown = 1;
(gdb) n
929 req_conn->read->eof = 1;
(gdb) n
931 if (sslerr == SSL_ERROR_ZERO_RETURN || ERR_peek_error() == 0) {
(gdb) n
938 req_conn->read->error = 1;
(gdb) n
940 ngx_log_error(NGX_LOG_ERR, req_conn->log, 0, "SSL_do_handshake() failed");
(gdb) n
941 ngx_http_ssl_handshake_handler(req_conn);
(gdb) n
944 }
(gdb) n
ngx_epoll_process_events (cycle=0xa23c90, timer=297405, flags=1) at src/event/modules/ngx_epoll_module.c:826
826 wev = c->write;
(gdb) n
828 if ((revents & EPOLLOUT) && wev->active) {
(gdb) n
830 if (c->fd == -1 || wev->instance != instance) {
(gdb) n
842 wev->ready = 1;
(gdb) n
844 if (flags & NGX_POST_EVENTS) {
(gdb) n
848 wev->handler(wev);
(gdb) n
753 for (i = 0; i < events; i++) {
(gdb) n
853 return NGX_OK;
(gdb) n
854 }
(gdb) n
ngx_process_events_and_timers (cycle=0xa23c90) at src/event/ngx_event.c:263
263 delta = ngx_current_msec - delta;
(gdb) n
265 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
(gdb) n
268 ngx_event_process_posted(cycle, &ngx_posted_accept_events);
(gdb) n
270 if (ngx_accept_mutex_held) {
(gdb) n
274 if (delta) {
(gdb) n
275 ngx_event_expire_timers();
(gdb) n
278 ngx_event_process_posted(cycle, &ngx_posted_events);
(gdb) n
279 }
(gdb) n
ngx_worker_process_cycle (cycle=0xa23c90, data=0x0) at src/os/unix/ngx_process_cycle.c:864
864 if (ngx_terminate) {
(gdb) n
870 if (ngx_quit) {
(gdb) n
886 if (ngx_reopen) {
(gdb) n
891 }
(gdb) n
836 if (ngx_exiting) {
(gdb) n
860 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle");
(gdb) n
862 ngx_process_events_and_timers(cycle);
(gdb) n
864 if (ngx_terminate) {
(gdb) n
870 if (ngx_quit) {
(gdb) n
886 if (ngx_reopen) {
(gdb) n
891 }
(gdb)
836 if (ngx_exiting) {
(gdb)
860 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle");
(gdb)
862 ngx_process_events_and_timers(cycle);
(gdb)
Detaching after fork from child process 21486.
Detaching after fork from child process 21487.
Detaching after fork from child process 21488.
Detaching after fork from child process 21489.
Detaching after fork from child process 21490.
Detaching after fork from child process 21491.
Detaching after fork from child process 21492.
[kssl_server] SSL error: error:00000001:lib(0):func(0):reason(1)
[kssl_server] SSL error: error:00000005:lib(0):func(0):DH lib
864 if (ngx_terminate) {
(gdb)
870 if (ngx_quit) {



