[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Subversion win32 crash with neon 0.26.x over https/SPNEGO

From: Martin Yves <yves.martin_at_elca.ch>
Date: 2007-03-30 14:08:54 CEST

 Hello,

My Subversion compilation on win32 platform was successful.
A first test with 1.4.x branch and neon 0.25.5 works properly
(I mean: SPNEGO authentication works if the URL contains the server
fully qualified name)

When building with neon 0.26.x, the svn command line crash with a null
pointer (yes I'm a Java guy) in libsvn_ra_dav/util.c:

  /* Register the "error" accepter and body-reader with the request --
     the one to use when HTTP status is *not* 2XX */
  if (ras->compression)
    decompress_err = ne_decompress_reader(req, ra_dav_error_accepter,
                                          ne_xml_parse_v, error_parser);
  else
    ne_add_response_body_reader(req, ra_dav_error_accepter,
                                ne_xml_parse_v, error_parser);

  /* run the request and get the resulting status code. */
  rv = ne_request_dispatch(req);

. req is null
. ras->compression is 0
. The raw stack trace follows if someone can get something out of it
. I'm happy: I can reproduce the bug now !

Thank you in advance for any help (patch proposal for instance ?)

svn.exe!_ne_parse_statusline() + 0x15c1 bytes
svn.exe!_ne_end_request() + 0x54 bytes
svn.exe!_ne_request_dispatch() + 0x3e bytes
svn.exe!parsed_request(ne_session_s * sess=0x00b22d28, const char *
method=0x004bf7a8, const char * url=0x00b0b2e0, const char *
body=0x00000000, apr_file_t * body_file=0x00000000, void
(ne_xml_parser_s *, void *)* set_parser=0x00471da0, const
svn_ra_dav__xml_elm_t * elements=0x004c0ff0, int use_neon_shim=1, int
(void *, int, int)* validate_compat_cb=0x00471810, int (void *, const
svn_ra_dav__xml_elm_t *, const char * *)* startelm_compat_cb=0x00471990,
int (void *, const svn_ra_dav__xml_elm_t *, const char *)*
endelm_compat_cb=0x00471b70, int (void *, int, const char *, const char
*, const char * *)* startelm_cb=0x00000000, int (void *, int, const char
*, unsigned int)* cdata_cb=0x00000000, int (void *, int, const char *,
const char *)* endelm_cb=0x00000000, void * baton=0x0012faec, apr_hash_t
* extra_headers=0x00b0b308, int * status_code=0x00000000, int
spool_response=0, apr_pool_t * pool=0x00b0b0c0) Line 715 + 0x6 bytes
svn.exe!svn_ra_dav__parsed_request_compat(ne_session_s *
sess=0x00b22d28, const char * method=0x004bf7a8, const char *
url=0x00b0b2e0, const char * body=0x00b24a60, apr_file_t *
body_file=0x00000000, void (ne_xml_parser_s *, void *)*
set_parser=0x00471da0, const svn_ra_dav__xml_elm_t *
elements=0x004c0ff0, int (void *, int, int)* validate_cb=0x00471810, int
(void *, const svn_ra_dav__xml_elm_t *, const char * *)*
startelm_cb=0x00471990, int (void *, const svn_ra_dav__xml_elm_t *,
const char *)* endelm_cb=0x00471b70, void * baton=0x0012faec, apr_hash_t
* extra_headers=0x00b0b308, int * status_code=0x00000000, int
spool_response=0, apr_pool_t * pool=0x00b0b0c0) Line 880 + 0x57 bytes
svn.exe!svn_ra_dav__get_props(apr_hash_t * * results=0x0012fb38,
ne_session_s * sess=0x00b22d28, const char * url=0x00b0b2e0, int
depth=0, const char * label=0x00000000, const ne_propname *
which_props=0x004c0eb0, apr_pool_t * pool=0x00b0b308) Line 539
svn.exe!svn_ra_dav__get_props_resource(svn_ra_dav_resource_t * *
rsrc=0x0012fba4, ne_session_s * sess=0x00b22d28, const char *
url=0x00b0b2a8, const char * label=0x00000000, const ne_propname *
which_props=0x004c0eb0, apr_pool_t * pool=0x00b0b0c0) Line 559 + 0x1d
bytes
svn.exe!svn_ra_dav__search_for_starting_props(svn_ra_dav_resource_t * *
rsrc=0x0012fba4, const char * * missing_path=0x0012fba8, ne_session_s *
sess=0x00b22d28, const char * url=0x003fd128, apr_pool_t *
pool=0x00b0b0c0) Line 668 + 0x1b bytes
svn.exe!svn_ra_dav__get_baseline_props(svn_string_t *
bc_relative=0x0012fbe8, svn_ra_dav_resource_t * * bln_rsrc=0x0012fbe4,
ne_session_s * sess=0x00b22d28, const char * url=0x003fd128, long
revision=-1, const ne_propname * which_props=0x004c0ed8, apr_pool_t *
pool=0x00b0b0c0) Line 776 + 0x22 bytes
svn.exe!svn_ra_dav__get_baseline_info(int * is_dir=0x00000000,
svn_string_t * bc_url=0x00000000, svn_string_t * bc_relative=0x00000000,
long * latest_rev=0x0012fc6c, ne_session_s * sess=0x00b22d28, const char
* url=0x003fd128, long revision=-1, apr_pool_t * pool=0x00b0b0c0) Line
904 + 0x2c bytes
svn.exe!svn_ra_dav__get_latest_revnum(svn_ra_session_t *
session=0x00b0b1b8, long * latest_revnum=0x0012fc6c, apr_pool_t *
pool=0x00b0b0c0) Line 1246 + 0x20 bytes
svn.exe!svn_client__get_revision_number(long * revnum=0x0012fc6c,
svn_ra_session_t * ra_session=0x00b0b1b8, const svn_opt_revision_t *
revision=0x0012fcfc, const char * path=0x00b0b0f8, apr_pool_t *
pool=0x00b0b0c0) Line 65 + 0x10 bytes
svn.exe!svn_client__repos_locations(const char * * start_url=0x0012fcdc,
svn_opt_revision_t * * start_revision=0x0012fce0, const char * *
end_url=0x0012fce8, svn_opt_revision_t * * end_revision=0x0012fce4,
svn_ra_session_t * ra_session=0x00b0b1b8, const char * path=0x00b0b0f8,
const svn_opt_revision_t * revision=0x0012fcfc, const svn_opt_revision_t
* start=0x0012fcec, const svn_opt_revision_t * end=0x0012fd0c,
svn_client_ctx_t * ctx=0x00af4598, apr_pool_t * pool=0x00b0b0c0) Line
762 + 0x16 bytes
svn.exe!svn_client__ra_session_from_path(svn_ra_session_t * *
ra_session_p=0x0012fd50, long * rev_p=0x0012fd54, const char * *
url_p=0x0012fd60, const char * path_or_url=0x00b0b0f8, const
svn_opt_revision_t * peg_revision_p=0x0012fdd8, const svn_opt_revision_t
* revision=0x0012fe50, svn_client_ctx_t * ctx=0x00af4598, apr_pool_t *
pool=0x00b0b0c0) Line 928 + 0x38 bytes
svn.exe!svn_client_list(const char * path_or_url=0x00b0b0f8, const
svn_opt_revision_t * peg_revision=0x0012fdd8, const svn_opt_revision_t *
revision=0x0012fe50, int recurse=0, unsigned int dirent_fields=1, int
fetch_locks=0, svn_error_t * (void *, const char *, const svn_dirent_t
*, const svn_lock_t *, const char *, apr_pool_t *)*
list_func=0x00403890, void * baton=0x0012fdd0, svn_client_ctx_t *
ctx=0x00af4598, apr_pool_t * pool=0x00b0b0c0) Line 125 + 0x38 bytes
svn.exe!svn_cl__list(apr_getopt_t * os=0x00af4188, void *
baton=0x00000000, apr_pool_t * pool=0x00af4070) Line 305 + 0x2b bytes
svn.exe!main(int argc=3, const char * * argv=0x003f3fc0) Line 1485 +
0x10 bytes
svn.exe!__tmainCRTStartup() Line 586 + 0x17 bytes

-- 
Yves Martin
Received on Fri Mar 30 14:16:49 2007

This is an archived mail posted to the Subversion Dev mailing list.