"Sander Stoks" <sander@stoks.nl> writes:
> Philip Martin wrote:
>
>> I suspect very few people attempt to build on BeOS, if nobody reports
>> the problems they may not get fixed.
>>
>> What command are you using? What shell are you using? What goes
>> wrong? What output do you get? Any errors in config.log?
>
> Using svn log in a directory which is part of my project. BeOS uses a
> bash variety. What goes wrong is a crash in svn_path_join. Config.log
> ends with "configure: exit 0".
When you said that the reason you had not upgraded was because
my client runs on BeOS, and the configure support there is not
working "out of the box"
I assumed you meant that you had trouble building Subversion because
./configure did not work. However, given your answer above I deduce
that you didn't mean that, but rather that you have a run-time problem
with ~/.subversion/.
> I've debugged things a bit and found out that the problem starts in
> get_creds() in providers.c - what it does there is
>
> config_dir = apr_hash_get (parameters,
> SVN_AUTH_PARAM_CONFIG_DIR,
> APR_HASH_KEY_STRING);
>
> (at around line 82). The problem is that this returns null on my
> system.
That's valid.
> SVN_AUTH_PARAM_CONFIG_DIR is "svn:auth:config-dir", and
> parameters seems like a valid pointer.
>
> Next, this null pointer is passed into svn_config_read_auth_data with
> cred_kind == svn.simple and realmstring == <http://pc1.stoks.nl:80>
> Subversion repository.
>
> svn_config_read_auth_data does a path_join() which dereferences the
> null pointer and crashes.
1. There is no call to svn_path_join in svn_config_read_auth_data.
2. It is valid to pass a NULL config_dir to svn_config_read_auth_data,
so it should not cause a crash.
> Simply putting an if(config_dir) around the call to
> svn_config_read_auth_data() solved the problem for me, but I'm probably
> treating symptoms here...
It's the wrong thing to do.
Does BeOS support the APR functions apr_uid_current, apr_uid_name_get,
apr_uid_homepath_get? If it doesn't then svn_config__user_config_path
will return a NULL path. The function auth_file_path in config_auth.c
doesn't handle the NULL (it also leaks any error returned by
svn_config__user_config_path).
The auth stuff appears to assume that the users config area will
always be available, which conflicts with the documentation for
svn_config__user_config_path which says that it may return NULL.
--
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Sep 16 19:45:36 2003