Fossil

Changes On Branch fix-ssl-crash
Login

Changes On Branch fix-ssl-crash

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch fix-ssl-crash Excluding Merge-Ins

This is equivalent to a diff from ea66927c0c to 616de1fef2

2020-02-06
15:32
When using HTTPS combined with HTTP AUTH, the SSL connection may go away and any further operations on it, including the implied SSL_shutdown() that occurs as a result of BIO_reset() or BIO_free_all() will crash Fossil. Attempt to deal with this by signaling a quiet shutdown if SSL_peek() returns an error. ... (Closed-Leaf check-in: 616de1fef2 user: andybradford tags: fix-ssl-crash)
2020-02-04
16:13
Updates to the hashpolicy.wiki document. The recent attention it received on HN caused me to notice that it needed refreshing. ... (check-in: 2f5bb4f04d user: drh tags: trunk)
2020-01-29
14:12
/dir page: changed the (columns: Xex Y) to (Xex auto), as the previous computed value (the number of entries in the list) was a semantic mismatch for that CSS property (the number of columns). ... (check-in: ea66927c0c user: stephan tags: trunk)
13:52
Added the 'files' CSS class to the /dir column view element, per discussion at [https://fossil-scm.org/forum/forumpost/092ec8a4d0|/forumpost/092ec8a4d0]. ... (check-in: 374ca0c007 user: stephan tags: trunk)

Changes to src/http_ssl.c.
166
167
168
169
170
171
172


173









174
175
176
177
178
179
180
}

/*
** Close the currently open SSL connection.  If no connection is open,
** this routine is a no-op.
*/
void ssl_close(void){


  if( iBio!=NULL ){









    (void)BIO_reset(iBio);
    BIO_free_all(iBio);
    iBio = NULL;
  }
}

/* See RFC2817 for details */







>
>

>
>
>
>
>
>
>
>
>







166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
}

/*
** Close the currently open SSL connection.  If no connection is open,
** this routine is a no-op.
*/
void ssl_close(void){
  char buf[1];
  int ret;
  if( iBio!=NULL ){
    if( (ret=SSL_peek(ssl,buf,sizeof(buf)))<=0 ){
      switch( SSL_get_error(ssl,ret) ){
        case SSL_ERROR_SYSCALL:
        case SSL_ERROR_SSL: {
          SSL_set_quiet_shutdown(ssl,1);
          break;
        }
      }
    }
    (void)BIO_reset(iBio);
    BIO_free_all(iBio);
    iBio = NULL;
  }
}

/* See RFC2817 for details */