jerenkrantz    01/08/17 21:00:22

  Modified:    .        CHANGES
               uri      apr_uri.c
  Log:
  apr_uri_unparse_components can unparse components into an invalid
  URI.  If the components contain either a user or password, the
  unparsed URI will always contain an '@' symbol.  This is incorrect,
  since the UNP_OMITPASSWORD and UNP_OMITUSER flags can affect
  this functionality.  I.e. if the components contain either a user
  or password, and flags to omit both the user and password from the
  unparsed URI are given, the output should contain no '@' symbol.
  
  RFC 2396 says:
  
   server        = [ [ userinfo "@" ] hostport ]
  
  When we omit the userinfo portion (i.e. both OMITPASSWORD and OMITUSER
  are set), we should omit the "@" character.
  
  Submitted by: Jon Travis <[EMAIL PROTECTED]>
  Reviewed by:  Justin Erenkrantz
  
  Revision  Changes    Path
  1.29      +4 -0      apr-util/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apr-util/CHANGES,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- CHANGES   2001/08/08 05:58:15     1.28
  +++ CHANGES   2001/08/18 04:00:22     1.29
  @@ -1,5 +1,9 @@
   Changes with APR-util b1  
   
  +  *) Fix URI unparse function to handle the case where it would place a @
  +     when both the username and password were present but omitted.
  +     [Jon Travis <[EMAIL PROTECTED]
  +
     *) Added apr_xml_parse_file() routine and a testxml program.
        [Ian Holsman <[EMAIL PROTECTED]>]
   
  
  
  
  1.7       +3 -1      apr-util/uri/apr_uri.c
  
  Index: apr_uri.c
  ===================================================================
  RCS file: /home/cvs/apr-util/uri/apr_uri.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- apr_uri.c 2001/06/13 22:56:23     1.6
  +++ apr_uri.c 2001/08/18 04:00:22     1.7
  @@ -139,7 +139,9 @@
                        (uptr->password && !(flags & UNP_OMITPASSWORD))
                           ? ((flags & UNP_REVEALPASSWORD) ? uptr->password : 
"XXXXXXXX")
                           : "",
  -                     "@", NULL);
  +            ((uptr->user     && !(flags & UNP_OMITUSER)) ||
  +             (uptr->password && !(flags & UNP_OMITPASSWORD))) ? "@" : "", 
  +            NULL);
   
        /* Construct scheme://site string */
        if (uptr->hostname) {
  
  
  

Reply via email to