diff -ru x509-5.5/ssh-ocsp.c x509-5.5+ocsppath/ssh-ocsp.c --- x509-5.5/ssh-ocsp.c 2006-05-18 21:02:45.000000000 +0300 +++ x509-5.5+ocsppath/ssh-ocsp.c 2006-08-26 17:54:58.000000000 +0300 @@ -349,6 +349,8 @@ if (conn == NULL) return; *pconn = NULL; + /* we don't need to clean items */ + if (conn->path != NULL) xfree(conn->path); if (conn->data != NULL) xfree(conn->data); if (conn->url != NULL) xfree((void*)conn->url ); xfree(conn); @@ -430,8 +432,9 @@ conn->host = p; q = strchr(p, '/'); if (q != NULL) { + if (q[1] != '\x0') conn->path = xstrdup(q); /*fatal on error*/ *q = '\x0'; - /* q+1 might point to path */ + /* now p(conn->host) point only to host{:port} */ } /*else q is NULL !!!*/ @@ -449,12 +452,6 @@ #endif } - /* chech for path */ - p = q; - if (p == NULL) goto exit; - if (*++p == '\x0') goto exit; - conn->path = p; - exit: return(conn); error: