Mercurial > hg > nginx
view src/mail/ngx_mail_pop3_module.h @ 8871:74b43926b470 quic
HTTP/3: fixed segfault when using SSL certificates with variables.
A QUIC connection doesn't have c->log->data and friends initialized to sensible
values. Yet, a request can be created in the certificate callback with such an
assumption, which leads to a segmentation fault due to null pointer dereference
in ngx_http_free_request(). The fix is to adjust initializing the QUIC part of
a connection such that it has all of that in place.
Further, this appends logging error context for unsuccessful QUIC handshakes:
- cannot load certificate .. while handling frames
- SSL_do_handshake() failed .. while sending frames
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 29 Sep 2021 15:01:59 +0300 |
parents | d620f497c50f |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_MAIL_POP3_MODULE_H_INCLUDED_ #define _NGX_MAIL_POP3_MODULE_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_mail.h> typedef struct { ngx_str_t capability; ngx_str_t starttls_capability; ngx_str_t starttls_only_capability; ngx_str_t auth_capability; ngx_uint_t auth_methods; ngx_array_t capabilities; } ngx_mail_pop3_srv_conf_t; void ngx_mail_pop3_init_session(ngx_mail_session_t *s, ngx_connection_t *c); void ngx_mail_pop3_init_protocol(ngx_event_t *rev); void ngx_mail_pop3_auth_state(ngx_event_t *rev); ngx_int_t ngx_mail_pop3_parse_command(ngx_mail_session_t *s); extern ngx_module_t ngx_mail_pop3_module; #endif /* _NGX_MAIL_POP3_MODULE_H_INCLUDED_ */