/[Apache-SVN]
ViewVC logotype

Revision 1475772


Jump to revision: Previous Next
Author: brane
Date: Thu Apr 25 13:48:46 2013 UTC (11 years ago)
Changed paths: 13
Log Message:
Fix issue #4361 (user/group names in authz files are case-insensitive).

Because of the way the original svn_config structure was designed to be
case-preserving but case-insensitive, when using it to parse authz
and group definition files, we had the following problems:

   * User- and group names that differed only in case could not be
     represented in the authorization configuration.
   * The results returned from authorization queries depended,
     although predictably, on the order in which the authz entries
     appeared in the authz file.

In 1.7.0, we added an option to svn_config to make configuration groups
(hence, repository paths in the authz config) case-sensitive. This change
does the same for option names, which map to group and user names.


* subversion/include/svn_config.h
  (svn_config_create2): New, revised from svn_config_create, with additional
   flag to treat option names as case-sensitive.
  (svn_config_read3): New, revised from svn_config_read2, with same
   additional flag as above.
  (svn_config_parse): Add flag to treat option names as case-sensitive.
  (svn_config_create): Deprecated.
  (svn_config_read2): Deprecated; argument "pool" renamde to "result_pool".
  (svn_config_read): Argument "pool" renamde to "result_pool".

* subversion/libsvn_subr/config_impl.h (struct svn_config_t): Add new
   struct member option_names_case_sensitive.
* subversion/libsvn_subr/config.c: Replace the newly deprecated
   svn_config APIs with their revised versions.
  (svn_config_create2): Renamed from
   svn_config_create and implementation updated to the new spec.
  (svn_config_read3): Renamed from svn_config_read; then same as above.
  (svn_config_merge): Make sure both sides of the merged config
   have the same case-(in)sensitive behaviour.
  (svn_config_create_option): Added case-sensitive flag.
* subversion/libsvn_subr/deprecated.c
  (svn_config_create, svn_config_read2): Implement deprecated wrappers.

* subversion/libsvn_repos/authz.c
  (authz_retrieve_config_repo, authz_retrieve_config,
  svn_repos__authz_read, svn_repos_authz_parse): Parse authz and groups config
   files with case-sensitive user and group names.
* subversion/libsvn_repos/hooks.c (svn_repos__parse_hooks_env):
   Likewise for the hooks environment file.

* subversion/libsvn_fs_fs/fs_fs.c,
  subversion/svnserve/serve.c,
  subversion/svnserve/svnserve.c,
  subversion/tests/libsvn_subr/cache-test.c,
  tools/server-side/mod_dontdothat/mod_dontdothat.c: Replace the newly
   deprecated svn_config APIs with their revised versions.
   No functional changes were made.


Changed paths

Path Details
Directorysubversion/trunk/subversion/include/svn_config.h modified , text changed
Directorysubversion/trunk/subversion/libsvn_fs_fs/fs_fs.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_repos/authz.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_repos/hooks.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_subr/config.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_subr/config_impl.h modified , text changed
Directorysubversion/trunk/subversion/libsvn_subr/deprecated.c modified , text changed
Directorysubversion/trunk/subversion/svnserve/serve.c modified , text changed
Directorysubversion/trunk/subversion/svnserve/svnserve.c modified , text changed
Directorysubversion/trunk/subversion/tests/libsvn_subr/cache-test.c modified , text changed
Directorysubversion/trunk/subversion/tests/libsvn_subr/config-test.c modified , text changed
Directorysubversion/trunk/subversion/tests/libsvn_subr/config-test.cfg modified , text changed
Directorysubversion/trunk/tools/server-side/mod_dontdothat/mod_dontdothat.c modified , text changed

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26