You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2007/03/02 19:53:04 UTC

DO NOT REPLY [Bug 39299] - Internal Server Error (500) on COPY

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=39299>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39299





------- Additional Comments From basant.kukreja@sun.com  2007-03-02 10:53 -------
Suggested fix is incomplete.

Here is the another issue (kind of extension to this bug ) related with this :

For configuration like :

DavLockDB /disk/apache/apache2/var/DAVLockFs
<Directory "/disk/apache/apache2/htdocs/DAVtest">
Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
AuthName "SMA Development server"
AuthType Basic
DAV On
</Directory>

If the request is :

COPY /DAVtest/litmus/copysrc HTTP/1.1
Host: myhostname.mydomain:4004
User-Agent: litmus/0.11 neon/0.25.5
Connection: TE
TE: trailers
Depth: 0
Destination: http://myhostname.mydomain:4004/DAVtest1/litmus/nonesuch/foo
Overwrite: F
X-Litmus: copymove: 5 (copy_nodestcoll)

then apache dies. Here is the stack trace :

(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1221944416 (LWP 12041)]
0x080bf0e0 in dav_get_resource (r=0x8635d18, label_allowed=0, use_checked_in=0,
res_p=0xb72a9224)
    at mod_dav.c:724
724         err = (*conf->provider->repos->get_resource)(r, conf->dir,
(gdb) where 10
#0  0x080bf0e0 in dav_get_resource (r=0x8635d18, label_allowed=0,
use_checked_in=0, res_p=0xb72a9224)
    at mod_dav.c:724
#1  0x080c3012 in dav_method_copymove (r=0x8631d08, is_move=0) at mod_dav.c:2642
#2  0x080c70f7 in dav_handler (r=0x8631d08) at mod_dav.c:4656
#3  0x08080e31 in ap_run_handler (r=0x8631d08) at config.c:157
#4  0x0808157b in ap_invoke_handler (r=0x8631d08) at config.c:372
#5  0x080b767c in ap_process_request (r=0x8631d08) at http_request.c:258
#6  0x080b41fe in ap_process_http_connection (c=0x84d3a40) at http_core.c:184
#7  0x08089373 in ap_run_process_connection (c=0x84d3a40) at connection.c:43
#8  0x08089786 in ap_process_connection (c=0x84d3a40, csd=0x84d3890) at
connection.c:178
#9  0x080f25fc in process_socket (p=0x84d3858, sock=0x84d3890, my_child_num=0,
my_thread_num=0,
    bucket_alloc=0x862fcc8) at worker.c:544
(More stack frames follow...)
(gdb) p conf
$1 = (dav_dir_conf *) 0x84396f8
(gdb) p conf->provider
$2 = (const dav_provider *) 0x0
(gdb)

The reason is :

    conf = ap_get_module_config(r->per_dir_config, &dav_module);
    /* assert: conf->provider != NULL */

    /* resolve the resource */
    err = (*conf->provider->repos->get_resource)(r, conf->dir,
                                                 label, use_checked_in,
                                                 res_p);

dav_get_resource doesn't check if there is no provider in conf and try to access
the resource. This case also needs to be handled.

Removing the keyword PatchAvailable so that we can provide the fix
for this issue too.



-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org