expcov report - Generated Sat Oct 15 21:39:18 2016

 Index  Statistics  Last 
Directory./modules/mappers
Filenamemod_alias.c
ModifiedMon Sep 5 04:37:31 2011

Pass Half Fail Excluded Total
Function
3
18.75%
13
81.25%
0
0.00%
16
100%
Expressions
10
3.95%
243
96.05%
0
0.00%
253
100%
Conditions
0
0.00%
0
0.00%
56
100.00%
0
0.00%
56
100%
MC/DC
0
0.00%
22
100.00%
0
0.00%
22
100%
Branches

if
0
0.00%
0
0.00%
46
100.00%
0
0.00%
46
100%
for
0
0.00%
0
0.00%
2
100.00%
0
0.00%
2
100%
while
0
0.00%
0
0.00%
3
100.00%
0
0.00%
3
100%
case
0
0.00%
0
0.00%
0
0.00%
0
0.00%
0
100%

1/* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements.  See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License.  You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * http_alias.c: Stuff for dealing with directory aliases
19 *
20 * Original by Rob McCool, rewritten in succession by David Robinson
21 * and rst.
22 *
23 */
24
25#include "apr_strings.h"
26#include "apr_lib.h"
27
28#define APR_WANT_STRFUNC
29#include "apr_want.h"
30
31#include "ap_config.h"
32#include "httpd.h"
33#include "http_core.h"
34#include "http_config.h"
35#include "http_request.h"
36#include "http_log.h"
37
38
39typedef struct {
40    const char *real;
41    const char *fake;
42    char *handler;
43    ap_regex_t *regexp;
44    int redir_status;                /* 301, 302, 303, 410, etc */
45} alias_entry;
46
47typedef struct {
48    apr_array_header_t *aliases;
49    apr_array_header_t *redirects;
50} alias_server_conf;
51
52typedef struct {
53    apr_array_header_t *redirects;
54} alias_dir_conf;
55
56module AP_MODULE_DECLARE_DATA alias_module;
57
58static void *create_alias_config : call=1
c
reate_alias_config(apr_pool_t *p, server_rec *s)
59{
60    alias_server_conf *a =
61    (alias_server_conf *) apr_pcalloc(p : modules/mappers/mod_alias.c line=58 column=46
p
, sizeof(alias_server_conf));
62
63    a : modules/mappers/mod_alias.c line=60 column=24
a
-> : enter=1, leave=1
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases = : enter=1, leave=1
=
 apr_array_make : enter=1, leave=1

apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
a
pr_array_make(p : modules/mappers/mod_alias.c line=58 column=46
p
, 20, sizeof(alias_entry));
64    a : modules/mappers/mod_alias.c line=60 column=24
a
-> : enter=1, leave=1
-
>redirects : modules/mappers/mod_alias.c line=49 column=25
r
edirects = : enter=1, leave=1
=
 apr_array_make : enter=1, leave=1

apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
a
pr_array_make(p : modules/mappers/mod_alias.c line=58 column=46
p
, 20, sizeof(alias_entry));
65    return : pass=1
r
eturn a : modules/mappers/mod_alias.c line=60 column=24
a
;
66}
67
68static void *create_alias_dir_config : call=1
c
reate_alias_dir_config(apr_pool_t *p, char *d)
69{
70    alias_dir_conf *a =
71    (alias_dir_conf *) apr_pcalloc(p : modules/mappers/mod_alias.c line=68 column=50
p
, sizeof(alias_dir_conf));
72    a : modules/mappers/mod_alias.c line=70 column=21
a
-> : enter=1, leave=1
-
>redirects : modules/mappers/mod_alias.c line=53 column=25
r
edirects = : enter=1, leave=1
=
 apr_array_make : enter=1, leave=1

apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
a
pr_array_make(p : modules/mappers/mod_alias.c line=68 column=50
p
, 2, sizeof(alias_entry));
73    return : pass=1
r
eturn a : modules/mappers/mod_alias.c line=70 column=21
a
;
74}
75
76static void *merge_alias_config : call=0
m
erge_alias_config(apr_pool_t *p, void *basev, void *overridesv)
77{
78    alias_server_conf *a =
79    (alias_server_conf *) apr_pcalloc(p : modules/mappers/mod_alias.c line=76 column=45
p
, sizeof(alias_server_conf));
80    alias_server_conf *base = (alias_server_conf *) basev : modules/mappers/mod_alias.c line=76 column=54
b
asev;
81    alias_server_conf *overrides = (alias_server_conf *) overridesv : modules/mappers/mod_alias.c line=76 column=67
o
verridesv;
82
83    a : modules/mappers/mod_alias.c line=78 column=24
a
-> : enter=0, leave=0
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases = : enter=0, leave=0
=
 apr_array_append : enter=0, leave=0

apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
a
pr_array_append(p : modules/mappers/mod_alias.c line=76 column=45
p
overrides : modules/mappers/mod_alias.c line=81 column=24
o
verrides-> : enter=0, leave=0
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases, base : modules/mappers/mod_alias.c line=80 column=24
b
ase-> : enter=0, leave=0
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases);
84    a : modules/mappers/mod_alias.c line=78 column=24
a
-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=49 column=25
r
edirects = : enter=0, leave=0
=
 apr_array_append : enter=0, leave=0

apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
a
pr_array_append(p : modules/mappers/mod_alias.c line=76 column=45
p
overrides : modules/mappers/mod_alias.c line=81 column=24
o
verrides-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=49 column=25
r
edirects, base : modules/mappers/mod_alias.c line=80 column=24
b
ase-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=49 column=25
r
edirects);
85    return : pass=0
r
eturn a : modules/mappers/mod_alias.c line=78 column=24
a
;
86}
87
88static void *merge_alias_dir_config : call=0
m
erge_alias_dir_config(apr_pool_t *p, void *basev, void *overridesv)
89{
90    alias_dir_conf *a =
91    (alias_dir_conf *) apr_pcalloc(p : modules/mappers/mod_alias.c line=88 column=49
p
, sizeof(alias_dir_conf));
92    alias_dir_conf *base = (alias_dir_conf *) basev : modules/mappers/mod_alias.c line=88 column=58
b
asev;
93    alias_dir_conf *overrides = (alias_dir_conf *) overridesv : modules/mappers/mod_alias.c line=88 column=71
o
verridesv;
94    a : modules/mappers/mod_alias.c line=90 column=21
a
-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=53 column=25
r
edirects = : enter=0, leave=0
=
 apr_array_append : enter=0, leave=0

apr_array_append : /usr/include/apr-1/apr_tables.h line=196 column=35
a
pr_array_append(p : modules/mappers/mod_alias.c line=88 column=49
p
overrides : modules/mappers/mod_alias.c line=93 column=21
o
verrides-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=53 column=25
r
edirects, base : modules/mappers/mod_alias.c line=92 column=21
b
ase-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=53 column=25
r
edirects);
95    return : pass=0
r
eturn a : modules/mappers/mod_alias.c line=90 column=21
a
;
96}
97
98/* need prototype for overlap check */
99static int alias_matches(const char *uri, const char *alias_fakename);
100
101static const char *add_alias_internal : call=0
a
dd_alias_internal(cmd_parms *cmd, void *dummy,
102                                      const char *f, const char *r,
103                                      int use_regex)
104{
105    server_rec *s = cmd : modules/mappers/mod_alias.c line=101 column=50
c
md-> : enter=0, leave=0
-
>server : include/http_config.h line=296 column=17
s
erver;
106    alias_server_conf *conf = ap_get_module_config(s : modules/mappers/mod_alias.c line=105 column=17
s
-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config,
107                                                   &alias_module : modules/mappers/mod_alias.c line=56 column=31
a
lias_module);
108    alias_entry *new = apr_array_push : enter=0, leave=0

apr_array_push : /usr/include/apr-1/apr_tables.h line=121 column=21
a
pr_array_push(conf : modules/mappers/mod_alias.c line=106 column=24
c
onf-> : enter=0, leave=0
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases);
109    alias_entry *entries = (alias_entry *)conf : modules/mappers/mod_alias.c line=106 column=24
c
onf-> : enter=0, leave=0
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases-> : enter=0, leave=0
-
>elts : /usr/include/apr-1/apr_tables.h line=62 column=11 elts;
110    int i;
111
112    /* XX r can NOT be relative to DocumentRoot here... compat bug. */
113
114    if : true=0, false=0
i
f (use_regex : modules/mappers/mod_alias.c line=103 column=43
u
se_regex) {
115        new : modules/mappers/mod_alias.c line=108 column=18
n
ew-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp = : enter=0, leave=0
=
 ap_pregcomp : enter=0, leave=0

ap_pregcomp : include/httpd.h line=1684 column=26
a
p_pregcomp(cmd : modules/mappers/mod_alias.c line=101 column=50
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, f : modules/mappers/mod_alias.c line=102 column=51
f
, AP_REG_EXTENDED);
116        if : true=0, false=0
i
f (new : modules/mappers/mod_alias.c line=108 column=18
n
ew-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp == : true=0, false=0
=
= NULL)
117            return : pass=0
r
eturn "Regular expression could not be compiled.";
118        new : modules/mappers/mod_alias.c line=108 column=18
n
ew-> : enter=0, leave=0
-
>real : modules/mappers/mod_alias.c line=40 column=17
r
eal = : enter=0, leave=0
=
 r : modules/mappers/mod_alias.c line=102 column=66
r
;
119    }
120    else {
121        /* XXX This may be optimized, but we must know that new->real
122         * exists.  If so, we can dir merge later, trusing new->real
123         * and just canonicalizing the remainder.  Not till I finish
124         * cleaning out the old ap_canonical stuff first.
125         */
126        new : modules/mappers/mod_alias.c line=108 column=18
n
ew-> : enter=0, leave=0
-
>real : modules/mappers/mod_alias.c line=40 column=17
r
eal = : enter=0, leave=0
=
 r : modules/mappers/mod_alias.c line=102 column=66
r
;
127    }
128    new : modules/mappers/mod_alias.c line=108 column=18
n
ew-> : enter=0, leave=0
-
>fake : modules/mappers/mod_alias.c line=41 column=17
f
ake = : enter=0, leave=0
=
 f : modules/mappers/mod_alias.c line=102 column=51
f
;
129    new : modules/mappers/mod_alias.c line=108 column=18
n
ew-> : enter=0, leave=0
-
>handler : modules/mappers/mod_alias.c line=42 column=11
h
andler = : enter=0, leave=0
=
 cmd : modules/mappers/mod_alias.c line=101 column=50
c
md-> : enter=0, leave=0
-
>info : include/http_config.h line=275 column=11
i
nfo;
130
131    /* check for overlapping (Script)Alias directives
132     * and throw a warning if found one
133     */
134    if : true=0, false=0
i
f (! : true=0, false=0
!
use_regex : modules/mappers/mod_alias.c line=103 column=43
u
se_regex) {
135        for : true=0, false=0
f
or (i : modules/mappers/mod_alias.c line=110 column=9
i
 = : pass=0
=
 0; i : modules/mappers/mod_alias.c line=110 column=9
i
 < : true=0, false=0
<
 conf : modules/mappers/mod_alias.c line=106 column=24
c
onf-> : enter=0, leave=0
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases-> : enter=0, leave=0
-
>nelts : /usr/include/apr-1/apr_tables.h line=58 column=9 nelts - : pass=0
-
 1; ++ : pass=0
+
+i : modules/mappers/mod_alias.c line=110 column=9
i
) {
136            alias_entry *p = &entries : modules/mappers/mod_alias.c line=109 column=18
e
ntries[] : enter=0, leave=0
[
i : modules/mappers/mod_alias.c line=110 column=9
i
];
137
138            if : true=0, false=0
i
f (  (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
p : modules/mappers/mod_alias.c line=136 column=26
p
-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp && : true=0, false=0
&
&  alias_matches : enter=0, leave=0

alias_matches : modules/mappers/mod_alias.c line=99 column=12
a
lias_matches(f : modules/mappers/mod_alias.c line=102 column=51
f
p : modules/mappers/mod_alias.c line=136 column=26
p
-> : enter=0, leave=0
-
>fake : modules/mappers/mod_alias.c line=41 column=17
f
ake) > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 0)
139                || : true=0, false=0
|
| (p : modules/mappers/mod_alias.c line=136 column=26
p
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
ap_regexec : enter=0, leave=0

ap_regexec : include/ap_regex.h line=119 column=17
a
p_regexec(p : modules/mappers/mod_alias.c line=136 column=26
p
-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp, f : modules/mappers/mod_alias.c line=102 column=51
f
, 0, NULL, 0))) {
140                ap_log_error : enter=0, leave=0

ap_log_error : include/http_log.h line=171 column=18
a
p_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd : modules/mappers/mod_alias.c line=101 column=50
c
md-> : enter=0, leave=0
-
>server : include/http_config.h line=296 column=17
s
erver,
141                             "The %s directive in %s at line %d will probably "
142                             "never match because it overlaps an earlier "
143                             "%sAlias%s.",
144                             cmd : modules/mappers/mod_alias.c line=101 column=50
c
md-> : enter=0, leave=0
-
>cmd : include/http_config.h line=305 column=24
c
md-> : enter=0, leave=0
-
>name : include/http_config.h line=204 column=17
n
ame, cmd : modules/mappers/mod_alias.c line=101 column=50
c
md-> : enter=0, leave=0
-
>directive : include/http_config.h line=288 column=21
d
irective-> : enter=0, leave=0
-
>filename : include/util_cfgtree.h line=67 column=17 filename,
145                             cmd : modules/mappers/mod_alias.c line=101 column=50
c
md-> : enter=0, leave=0
-
>directive : include/http_config.h line=288 column=21
d
irective-> : enter=0, leave=0
-
>line_num : include/util_cfgtree.h line=69 column=9 line_num,
146                             p : modules/mappers/mod_alias.c line=136 column=26
p
-> : enter=0, leave=0
-
>handler : modules/mappers/mod_alias.c line=42 column=11
h
andler conditional operator : true=0, false=0
?
 "Script" : "",
147                             p : modules/mappers/mod_alias.c line=136 column=26
p
-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp conditional operator : true=0, false=0
?
 "Match" : "");
148
149                break : pass=0
b
reak; /* one warning per alias should be sufficient */
150            }
151        }
152    }
153
154    return : pass=0
r
eturn NULL;
155}
156
157static const char *add_alias : call=0
a
dd_alias(cmd_parms *cmd, void *dummy, const char *f,
158                             const char *r)
159{
160    return : pass=0
r
eturn add_alias_internal : enter=0, leave=0

add_alias_internal : modules/mappers/mod_alias.c line=101 column=20
a
dd_alias_internal(cmd : modules/mappers/mod_alias.c line=157 column=41
c
md, dummy : modules/mappers/mod_alias.c line=157 column=52
d
ummy, f : modules/mappers/mod_alias.c line=157 column=71
f
r : modules/mappers/mod_alias.c line=158 column=42
r
, 0);
161}
162
163static const char *add_alias_regex : call=0
a
dd_alias_regex(cmd_parms *cmd, void *dummy, const char *f,
164                                   const char *r)
165{
166    return : pass=0
r
eturn add_alias_internal : enter=0, leave=0

add_alias_internal : modules/mappers/mod_alias.c line=101 column=20
a
dd_alias_internal(cmd : modules/mappers/mod_alias.c line=163 column=47
c
md, dummy : modules/mappers/mod_alias.c line=163 column=58
d
ummy, f : modules/mappers/mod_alias.c line=163 column=77
f
r : modules/mappers/mod_alias.c line=164 column=48
r
, 1);
167}
168
169static const char *add_redirect_internal : call=0
a
dd_redirect_internal(cmd_parms *cmd,
170                                         alias_dir_conf *dirconf,
171                                         const char *arg1, const char *arg2,
172                                         const char *arg3, int use_regex)
173{
174    alias_entry *new;
175    server_rec *s = cmd : modules/mappers/mod_alias.c line=169 column=53
c
md-> : enter=0, leave=0
-
>server : include/http_config.h line=296 column=17
s
erver;
176    alias_server_conf *serverconf = ap_get_module_config(s : modules/mappers/mod_alias.c line=175 column=17
s
-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config,
177                                                         &alias_module : modules/mappers/mod_alias.c line=56 column=31
a
lias_module);
178    int status = (int) (long) cmd : modules/mappers/mod_alias.c line=169 column=53
c
md-> : enter=0, leave=0
-
>info : include/http_config.h line=275 column=11
i
nfo;
179    int grokarg1 = 1;
180    ap_regex_t *r = NULL;
181    const char *f = arg2 : modules/mappers/mod_alias.c line=171 column=72
a
rg2;
182    const char *url = arg3 : modules/mappers/mod_alias.c line=172 column=54
a
rg3;
183
184    /*
185     * Logic flow:
186     *   Go ahead and try to grok the 1st arg, in case it is a
187     *   Redirect status. Now if we have 3 args, we expect that
188     *   we were able to understand that 1st argument (it's something
189     *   we expected, so if not, then we bail
190     */
191    if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(arg1 : modules/mappers/mod_alias.c line=171 column=54
a
rg1, "permanent"))
192        status : modules/mappers/mod_alias.c line=178 column=9
s
tatus = : pass=0
=
 HTTP_MOVED_PERMANENTLY;
193    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(arg1 : modules/mappers/mod_alias.c line=171 column=54
a
rg1, "temp"))
194        status : modules/mappers/mod_alias.c line=178 column=9
s
tatus = : pass=0
=
 HTTP_MOVED_TEMPORARILY;
195    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(arg1 : modules/mappers/mod_alias.c line=171 column=54
a
rg1, "seeother"))
196        status : modules/mappers/mod_alias.c line=178 column=9
s
tatus = : pass=0
=
 HTTP_SEE_OTHER;
197    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(arg1 : modules/mappers/mod_alias.c line=171 column=54
a
rg1, "gone"))
198        status : modules/mappers/mod_alias.c line=178 column=9
s
tatus = : pass=0
=
 HTTP_GONE;
199    else if : true=0, false=0
i
f (apr_isdigit(* dereference : enter=0, leave=0
*
arg1 : modules/mappers/mod_alias.c line=171 column=54
a
rg1))
200        status : modules/mappers/mod_alias.c line=178 column=9
s
tatus = : pass=0
=
 atoi : enter=0, leave=0

atoi : /usr/include/stdlib.h line=148 column=12
a
toi(arg1 : modules/mappers/mod_alias.c line=171 column=54
a
rg1);
201    else
202        grokarg1 : modules/mappers/mod_alias.c line=179 column=9
g
rokarg1 = : pass=0
=
 0;
203
204    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

arg3 : modules/mappers/mod_alias.c line=172 column=54
aTF
rg3 && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
grokarg1 : modules/mappers/mod_alias.c line=179 column=9
g
rokarg1)
205        return : pass=0
r
eturn "Redirect: invalid first argument (of three)";
206
207    /*
208     * if we don't have the 3rd arg and we didn't understand the 1st
209     * one, then assume URL-path URL. This also handles case, eg, GONE
210     * we even though we don't have a 3rd arg, we did understand the 1st
211     * one, so we don't want to re-arrange
212     */
213    if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
arg3 : modules/mappers/mod_alias.c line=172 column=54
a
rg3 && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
grokarg1 : modules/mappers/mod_alias.c line=179 column=9
g
rokarg1) {
214        f : modules/mappers/mod_alias.c line=181 column=17
f
 = : pass=0
=
 arg1 : modules/mappers/mod_alias.c line=171 column=54
a
rg1;
215        url : modules/mappers/mod_alias.c line=182 column=17
u
rl = : pass=0
=
 arg2 : modules/mappers/mod_alias.c line=171 column=72
a
rg2;
216    }
217
218    if : true=0, false=0
i
f (use_regex : modules/mappers/mod_alias.c line=172 column=64
u
se_regex) {
219        r : modules/mappers/mod_alias.c line=180 column=17
r
 = : pass=0
=
 ap_pregcomp : enter=0, leave=0

ap_pregcomp : include/httpd.h line=1684 column=26
a
p_pregcomp(cmd : modules/mappers/mod_alias.c line=169 column=53
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, f : modules/mappers/mod_alias.c line=181 column=17
f
, AP_REG_EXTENDED);
220        if : true=0, false=0
i
f (r : modules/mappers/mod_alias.c line=180 column=17
r
 == : true=0, false=0
=
= NULL)
221            return : pass=0
r
eturn "Regular expression could not be compiled.";
222    }
223
224    if : true=0, false=0
i
f (ap_is_HTTP_REDIRECT(status : modules/mappers/mod_alias.c line=178 column=9
s
tatus)) {
225        if : true=0, false=0
i
f (! : true=0, false=0
!
url : modules/mappers/mod_alias.c line=182 column=17
u
rl)
226            return : pass=0
r
eturn "URL to redirect to is missing";
227        /* PR#35314: we can allow path components here;
228         * they get correctly resolved to full URLs.
229         */
230        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
use_regex : modules/mappers/mod_alias.c line=172 column=64
u
se_regex && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
ap_is_url : enter=0, leave=0

ap_is_url : include/httpd.h line=1448 column=17
a
p_is_url(url : modules/mappers/mod_alias.c line=182 column=17
u
rl) && : true=0, false=0
&
& (url : modules/mappers/mod_alias.c line=182 column=17
u
rl[] : enter=0, leave=0
[
0] != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '/'))
231            return : pass=0
r
eturn "Redirect to non-URL";
232    }
233    else {
234        if : true=0, false=0
i
f (url : modules/mappers/mod_alias.c line=182 column=17
u
rl)
235            return : pass=0
r
eturn "Redirect URL not valid for this status";
236    }
237
238    if : true=0, false=0
i
f (cmd : modules/mappers/mod_alias.c line=169 column=53
c
md-> : enter=0, leave=0
-
>path : include/http_config.h line=303 column=11
p
ath)
239        new : modules/mappers/mod_alias.c line=174 column=18
n
ew = : pass=0
=
 apr_array_push : enter=0, leave=0

apr_array_push : /usr/include/apr-1/apr_tables.h line=121 column=21
a
pr_array_push(dirconf : modules/mappers/mod_alias.c line=170 column=58
d
irconf-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=53 column=25
r
edirects);
240    else
241        new : modules/mappers/mod_alias.c line=174 column=18
n
ew = : pass=0
=
 apr_array_push : enter=0, leave=0

apr_array_push : /usr/include/apr-1/apr_tables.h line=121 column=21
a
pr_array_push(serverconf : modules/mappers/mod_alias.c line=176 column=24
s
erverconf-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=49 column=25
r
edirects);
242
243    new : modules/mappers/mod_alias.c line=174 column=18
n
ew-> : enter=0, leave=0
-
>fake : modules/mappers/mod_alias.c line=41 column=17
f
ake = : enter=0, leave=0
=
 f : modules/mappers/mod_alias.c line=181 column=17
f
;
244    new : modules/mappers/mod_alias.c line=174 column=18
n
ew-> : enter=0, leave=0
-
>real : modules/mappers/mod_alias.c line=40 column=17
r
eal = : enter=0, leave=0
=
 url : modules/mappers/mod_alias.c line=182 column=17
u
rl;
245    new : modules/mappers/mod_alias.c line=174 column=18
n
ew-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp = : enter=0, leave=0
=
 r : modules/mappers/mod_alias.c line=180 column=17
r
;
246    new : modules/mappers/mod_alias.c line=174 column=18
n
ew-> : enter=0, leave=0
-
>redir_status : modules/mappers/mod_alias.c line=44 column=9
r
edir_status = : enter=0, leave=0
=
 status : modules/mappers/mod_alias.c line=178 column=9
s
tatus;
247    return : pass=0
r
eturn NULL;
248}
249
250static const char *add_redirect : call=0
a
dd_redirect(cmd_parms *cmd, void *dirconf,
251                                const char *arg1, const char *arg2,
252                                const char *arg3)
253{
254    return : pass=0
r
eturn add_redirect_internal : enter=0, leave=0

add_redirect_internal : modules/mappers/mod_alias.c line=169 column=20
a
dd_redirect_internal(cmd : modules/mappers/mod_alias.c line=250 column=44
c
md, dirconf : modules/mappers/mod_alias.c line=250 column=55
d
irconf, arg1 : modules/mappers/mod_alias.c line=251 column=45
a
rg1, arg2 : modules/mappers/mod_alias.c line=251 column=63
a
rg2, arg3 : modules/mappers/mod_alias.c line=252 column=45
a
rg3, 0);
255}
256
257static const char *add_redirect2 : call=0
a
dd_redirect2(cmd_parms *cmd, void *dirconf,
258                                 const char *arg1, const char *arg2)
259{
260    return : pass=0
r
eturn add_redirect_internal : enter=0, leave=0

add_redirect_internal : modules/mappers/mod_alias.c line=169 column=20
a
dd_redirect_internal(cmd : modules/mappers/mod_alias.c line=257 column=45
c
md, dirconf : modules/mappers/mod_alias.c line=257 column=56
d
irconf, arg1 : modules/mappers/mod_alias.c line=258 column=46
a
rg1, arg2 : modules/mappers/mod_alias.c line=258 column=64
a
rg2, NULL, 0);
261}
262
263static const char *add_redirect_regex : call=0
a
dd_redirect_regex(cmd_parms *cmd, void *dirconf,
264                                      const char *arg1, const char *arg2,
265                                      const char *arg3)
266{
267    return : pass=0
r
eturn add_redirect_internal : enter=0, leave=0

add_redirect_internal : modules/mappers/mod_alias.c line=169 column=20
a
dd_redirect_internal(cmd : modules/mappers/mod_alias.c line=263 column=50
c
md, dirconf : modules/mappers/mod_alias.c line=263 column=61
d
irconf, arg1 : modules/mappers/mod_alias.c line=264 column=51
a
rg1, arg2 : modules/mappers/mod_alias.c line=264 column=69
a
rg2, arg3 : modules/mappers/mod_alias.c line=265 column=51
a
rg3, 1);
268}
269
270static const command_rec alias_cmds[] =
271{
272    AP_INIT_TAKE2("Alias", add_alias : modules/mappers/mod_alias.c line=157 column=20
a
dd_alias, NULL, RSRC_CONF,
273                  "a fakename and a realname"),
274    AP_INIT_TAKE2("ScriptAlias", add_alias : modules/mappers/mod_alias.c line=157 column=20
a
dd_alias, "cgi-script", RSRC_CONF,
275                  "a fakename and a realname"),
276    AP_INIT_TAKE23("Redirect", add_redirect : modules/mappers/mod_alias.c line=250 column=20
a
dd_redirect, (void *) HTTP_MOVED_TEMPORARILY,
277                   OR_FILEINFO,
278                   "an optional status, then document to be redirected and "
279                   "destination URL"),
280    AP_INIT_TAKE2("AliasMatch", add_alias_regex : modules/mappers/mod_alias.c line=163 column=20
a
dd_alias_regex, NULL, RSRC_CONF,
281                  "a regular expression and a filename"),
282    AP_INIT_TAKE2("ScriptAliasMatch", add_alias_regex : modules/mappers/mod_alias.c line=163 column=20
a
dd_alias_regex, "cgi-script", RSRC_CONF,
283                  "a regular expression and a filename"),
284    AP_INIT_TAKE23("RedirectMatch", add_redirect_regex : modules/mappers/mod_alias.c line=263 column=20
a
dd_redirect_regex,
285                   (void *) HTTP_MOVED_TEMPORARILY, OR_FILEINFO,
286                   "an optional status, then a regular expression and "
287                   "destination URL"),
288    AP_INIT_TAKE2("RedirectTemp", add_redirect2 : modules/mappers/mod_alias.c line=257 column=20
a
dd_redirect2,
289                  (void *) HTTP_MOVED_TEMPORARILY, OR_FILEINFO,
290                  "a document to be redirected, then the destination URL"),
291    AP_INIT_TAKE2("RedirectPermanent", add_redirect2 : modules/mappers/mod_alias.c line=257 column=20
a
dd_redirect2,
292                  (void *) HTTP_MOVED_PERMANENTLY, OR_FILEINFO,
293                  "a document to be redirected, then the destination URL"),
294    {NULL}
295};
296
297static int alias_matches : call=0
a
lias_matches(const char *uri, const char *alias_fakename)
298{
299    const char *aliasp = alias_fakename : modules/mappers/mod_alias.c line=297 column=55
a
lias_fakename, *urip = uri : modules/mappers/mod_alias.c line=297 column=38
u
ri;
300
301    while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
aliasp : modules/mappers/mod_alias.c line=299 column=17
a
liasp) {
302        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
aliasp : modules/mappers/mod_alias.c line=299 column=17
a
liasp == : true=0, false=0
=
= '/') {
303            /* any number of '/' in the alias matches any number in
304             * the supplied URI, but there must be at least one...
305             */
306            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
urip : modules/mappers/mod_alias.c line=299 column=43
u
rip != : true=0, false=0
!
= '/')
307                return : pass=0
r
eturn 0;
308
309            do {
310                ++ : pass=0
+
+aliasp : modules/mappers/mod_alias.c line=299 column=17
a
liasp;
311            } while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
aliasp : modules/mappers/mod_alias.c line=299 column=17
a
liasp == : true=0, false=0
=
= '/');
312            do {
313                ++ : pass=0
+
+urip : modules/mappers/mod_alias.c line=299 column=43
u
rip;
314            } while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
urip : modules/mappers/mod_alias.c line=299 column=43
u
rip == : true=0, false=0
=
= '/');
315        }
316        else {
317            /* Other characters are compared literally */
318            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
urip : modules/mappers/mod_alias.c line=299 column=43
u
rip++ : pass=0
+
!= : true=0, false=0
!
* dereference : enter=0, leave=0
*
aliasp : modules/mappers/mod_alias.c line=299 column=17
a
liasp++ : pass=0
+
+)
319                return : pass=0
r
eturn 0;
320        }
321    }
322
323    /* Check last alias path component matched all the way */
324
325    if : true=0, false=0
i
f (aliasp : modules/mappers/mod_alias.c line=299 column=17
a
liasp[] : enter=0, leave=0
[
-1] != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '/' && : true=0, false=0
&
* dereference : enter=0, leave=0
*
urip : modules/mappers/mod_alias.c line=299 column=43
u
rip != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\0' && : true=0, false=0
&
* dereference : enter=0, leave=0
*
urip : modules/mappers/mod_alias.c line=299 column=43
u
rip != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '/')
326        return : pass=0
r
eturn 0;
327
328    /* Return number of characters from URI which matched (may be
329     * greater than length of alias, since we may have matched
330     * doubled slashes)
331     */
332
333    return : pass=0
r
eturn urip : modules/mappers/mod_alias.c line=299 column=43
u
rip - : pass=0
-
 uri : modules/mappers/mod_alias.c line=297 column=38
u
ri;
334}
335
336static char *try_alias_list : call=0
t
ry_alias_list(request_rec *r, apr_array_header_t *aliases,
337                            int doesc, int *status)
338{
339    alias_entry *entries = (alias_entry *) aliases : modules/mappers/mod_alias.c line=336 column=65
a
liases-> : enter=0, leave=0
-
>elts : /usr/include/apr-1/apr_tables.h line=62 column=11 elts;
340    ap_regmatch_t regm[AP_MAX_REG_MATCH];
341    char *found = NULL;
342    int i;
343
344    for : true=0, false=0
f
or (i : modules/mappers/mod_alias.c line=342 column=9
i
 = : pass=0
=
 0; i : modules/mappers/mod_alias.c line=342 column=9
i
 < : true=0, false=0
<
 aliases : modules/mappers/mod_alias.c line=336 column=65
a
liases-> : enter=0, leave=0
-
>nelts : /usr/include/apr-1/apr_tables.h line=58 column=9 nelts; ++ : pass=0
+
+i : modules/mappers/mod_alias.c line=342 column=9
i
) {
345        alias_entry *p = &entries : modules/mappers/mod_alias.c line=339 column=18
e
ntries[] : enter=0, leave=0
[
i : modules/mappers/mod_alias.c line=342 column=9
i
];
346        int l;
347
348        if : true=0, false=0
i
f (p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp) {
349            if : true=0, false=0
i
f (! : true=0, false=0
!
ap_regexec : enter=0, leave=0

ap_regexec : include/ap_regex.h line=119 column=17
a
p_regexec(p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>regexp : modules/mappers/mod_alias.c line=43 column=17
r
egexp, r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri, AP_MAX_REG_MATCH, regm : modules/mappers/mod_alias.c line=340 column=19
r
egm, 0)) {
350                if : true=0, false=0
i
f (p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>real : modules/mappers/mod_alias.c line=40 column=17
r
eal) {
351                    found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 ap_pregsub : enter=0, leave=0

ap_pregsub : include/httpd.h line=1705 column=20
a
p_pregsub(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>real : modules/mappers/mod_alias.c line=40 column=17
r
eal, r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri,
352                                       AP_MAX_REG_MATCH, regm : modules/mappers/mod_alias.c line=340 column=19
r
egm);
353                    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

found : modules/mappers/mod_alias.c line=341 column=11
fTF
ound && : true=0, false=0
&
MC/DC independently affect : true=0, false=0

doesc : modules/mappers/mod_alias.c line=337 column=33
dTF
oesc) {
354                        apr_uri_t uri;
355                        apr_uri_parse : enter=0, leave=0

apr_uri_parse : /usr/include/apr-1/apr_uri.h line=159 column=27
a
pr_uri_parse(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, found : modules/mappers/mod_alias.c line=341 column=11
f
ound, &uri : modules/mappers/mod_alias.c line=354 column=35
u
ri);
356                        /* Do not escape the query string or fragment. */
357                        found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 apr_uri_unparse : enter=0, leave=0

apr_uri_unparse : /usr/include/apr-1/apr_uri.h line=146 column=21
a
pr_uri_unparse(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &uri : modules/mappers/mod_alias.c line=354 column=35
u
ri,
358                                                APR_URI_UNP_OMITQUERY);
359                        found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 ap_escape_uri(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, found : modules/mappers/mod_alias.c line=341 column=11
f
ound);
360                        if : true=0, false=0
i
f (uri : modules/mappers/mod_alias.c line=354 column=35
u
ri.query : /usr/include/apr-1/apr_uri.h line=101 column=11 query) {
361                            found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, found : modules/mappers/mod_alias.c line=341 column=11
f
ound, "?",
362                                                uri : modules/mappers/mod_alias.c line=354 column=35
u
ri.query : /usr/include/apr-1/apr_uri.h line=101 column=11 query, NULL);
363                        }
364                        if : true=0, false=0
i
f (uri : modules/mappers/mod_alias.c line=354 column=35
u
ri.fragment : /usr/include/apr-1/apr_uri.h line=103 column=11 fragment) {
365                            found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, found : modules/mappers/mod_alias.c line=341 column=11
f
ound, "#",
366                                                uri : modules/mappers/mod_alias.c line=354 column=35
u
ri.fragment : /usr/include/apr-1/apr_uri.h line=103 column=11 fragment, NULL);
367                        }
368                    }
369                }
370                else {
371                    /* need something non-null */
372                    found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, "");
373                }
374            }
375        }
376        else {
377            l : modules/mappers/mod_alias.c line=346 column=13
l
 = : pass=0
=
 alias_matches : enter=0, leave=0

alias_matches : modules/mappers/mod_alias.c line=297 column=12
a
lias_matches(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri, p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>fake : modules/mappers/mod_alias.c line=41 column=17
f
ake);
378
379            if : true=0, false=0
i
f (l : modules/mappers/mod_alias.c line=346 column=13
l
 > : true=0, false=0
>
 0) {
380                if : true=0, false=0
i
f (doesc : modules/mappers/mod_alias.c line=337 column=33
d
oesc) {
381                    char *escurl;
382                    escurl : modules/mappers/mod_alias.c line=381 column=27
e
scurl = : pass=0
=
 ap_os_escape_path : enter=0, leave=0

ap_os_escape_path : include/httpd.h line=1501 column=20
a
p_os_escape_path(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri + : pass=0
+
 l : modules/mappers/mod_alias.c line=346 column=13
l
, 1);
383
384                    found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>real : modules/mappers/mod_alias.c line=40 column=17
r
eal, escurl : modules/mappers/mod_alias.c line=381 column=27
e
scurl, NULL);
385                }
386                else
387                    found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>real : modules/mappers/mod_alias.c line=40 column=17
r
eal, r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri + : pass=0
+
 l : modules/mappers/mod_alias.c line=346 column=13
l
, NULL);
388            }
389        }
390
391        if : true=0, false=0
i
f (found : modules/mappers/mod_alias.c line=341 column=11
f
ound) {
392            if : true=0, false=0
i
f (p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>handler : modules/mappers/mod_alias.c line=42 column=11
h
andler) {    /* Set handler, and leave a note for mod_cgi */
393                r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>handler : include/httpd.h line=919 column=17
h
andler = : enter=0, leave=0
=
 p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>handler : modules/mappers/mod_alias.c line=42 column=11
h
andler;
394                apr_table_setn : enter=0, leave=0

apr_table_setn : /usr/include/apr-1/apr_tables.h line=282 column=19
a
pr_table_setn(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "alias-forced-type", r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>handler : include/httpd.h line=919 column=17
h
andler);
395            }
396            /* XXX This is as SLOW as can be, next step, we optimize
397             * and merge to whatever part of the found path was already
398             * canonicalized.  After I finish eliminating os canonical.
399             * Better fail test for ap_server_root_relative needed here.
400             */
401            if : true=0, false=0
i
f (! : true=0, false=0
!
doesc : modules/mappers/mod_alias.c line=337 column=33
d
oesc) {
402                found : modules/mappers/mod_alias.c line=341 column=11
f
ound = : pass=0
=
 ap_server_root_relative : enter=0, leave=0

ap_server_root_relative : include/http_config.h line=557 column=20
a
p_server_root_relative(r : modules/mappers/mod_alias.c line=336 column=42
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, found : modules/mappers/mod_alias.c line=341 column=11
f
ound);
403            }
404            if : true=0, false=0
i
f (found : modules/mappers/mod_alias.c line=341 column=11
f
ound) {
405                *status : modules/mappers/mod_alias.c line=337 column=45
s
tatus = : enter=0, leave=0
=
 p : modules/mappers/mod_alias.c line=345 column=22
p
-> : enter=0, leave=0
-
>redir_status : modules/mappers/mod_alias.c line=44 column=9
r
edir_status;
406            }
407            return : pass=0
r
eturn found : modules/mappers/mod_alias.c line=341 column=11
f
ound;
408        }
409
410    }
411
412    return : pass=0
r
eturn NULL;
413}
414
415static int translate_alias_redir : call=0
t
ranslate_alias_redir(request_rec *r)
416{
417    ap_conf_vector_t *sconf = r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config;
418    alias_server_conf *serverconf = ap_get_module_config(sconf : modules/mappers/mod_alias.c line=417 column=23
s
conf, &alias_module : modules/mappers/mod_alias.c line=56 column=31
a
lias_module);
419    char *ret;
420    int status;
421
422    if : true=0, false=0
i
f (r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri[] : enter=0, leave=0
[
0] != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '/' && : true=0, false=0
&
r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri[] : enter=0, leave=0
[
0] != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\0') {
423        return : pass=0
r
eturn DECLINED;
424    }
425
426    if : true=0, false=0
i
f ((ret : modules/mappers/mod_alias.c line=419 column=11
r
et = : pass=0
=
 try_alias_list : enter=0, leave=0

try_alias_list : modules/mappers/mod_alias.c line=336 column=14
t
ry_alias_list(r : modules/mappers/mod_alias.c line=415 column=47
r
serverconf : modules/mappers/mod_alias.c line=418 column=24
s
erverconf-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=49 column=25
r
edirects, 1, &status : modules/mappers/mod_alias.c line=420 column=9
s
tatus)) != : true=0, false=0
!
= NULL) {
427        if : true=0, false=0
i
f (ap_is_HTTP_REDIRECT(status : modules/mappers/mod_alias.c line=420 column=9
s
tatus)) {
428            char *orig_target = ret : modules/mappers/mod_alias.c line=419 column=11
r
et;
429            if : true=0, false=0
i
f (ret : modules/mappers/mod_alias.c line=419 column=11
r
et[] : enter=0, leave=0
[
0] == : true=0, false=0
=
= '/') {
430
431                ret : modules/mappers/mod_alias.c line=419 column=11
r
et = : pass=0
=
 ap_construct_url : enter=0, leave=0

ap_construct_url : include/http_core.h line=221 column=20
a
p_construct_url(r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, ret : modules/mappers/mod_alias.c line=419 column=11
r
et, r : modules/mappers/mod_alias.c line=415 column=47
r
);
432                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r : modules/mappers/mod_alias.c line=415 column=47
r
,
433                              "incomplete redirection target of '%s' for "
434                              "URI '%s' modified to '%s'",
435                              orig_target : modules/mappers/mod_alias.c line=428 column=19
o
rig_target, r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri, ret : modules/mappers/mod_alias.c line=419 column=11
r
et);
436            }
437            if : true=0, false=0
i
f (! : true=0, false=0
!
ap_is_url : enter=0, leave=0

ap_is_url : include/httpd.h line=1448 column=17
a
p_is_url(ret : modules/mappers/mod_alias.c line=419 column=11
r
et)) {
438                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/mappers/mod_alias.c line=415 column=47
r
,
439                              "cannot redirect '%s' to '%s'; "
440                              "target is not a valid absoluteURI or abs_path",
441                              r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri, ret : modules/mappers/mod_alias.c line=419 column=11
r
et);
442                /* restore the config value, so as not to get a
443                 * "regression" on existing "working" configs.
444                 */
445                ret : modules/mappers/mod_alias.c line=419 column=11
r
et = : pass=0
=
 orig_target : modules/mappers/mod_alias.c line=428 column=19
o
rig_target;
446            }
447            /* append requested query only, if the config didn't
448             * supply its own.
449             */
450            if : true=0, false=0
i
f (r : modules/mappers/mod_alias.c line=415 column=47
r
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>args : include/httpd.h line=955 column=11
a
rgs && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
ap_strchr(ret : modules/mappers/mod_alias.c line=419 column=11
r
et, '?')) {
451                ret : modules/mappers/mod_alias.c line=419 column=11
r
et = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, ret : modules/mappers/mod_alias.c line=419 column=11
r
et, "?", r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs, NULL);
452            }
453            apr_table_setn : enter=0, leave=0

apr_table_setn : /usr/include/apr-1/apr_tables.h line=282 column=19
a
pr_table_setn(r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Location", ret : modules/mappers/mod_alias.c line=419 column=11
r
et);
454        }
455        return : pass=0
r
eturn status : modules/mappers/mod_alias.c line=420 column=9
s
tatus;
456    }
457
458    if : true=0, false=0
i
f ((ret : modules/mappers/mod_alias.c line=419 column=11
r
et = : pass=0
=
 try_alias_list : enter=0, leave=0

try_alias_list : modules/mappers/mod_alias.c line=336 column=14
t
ry_alias_list(r : modules/mappers/mod_alias.c line=415 column=47
r
serverconf : modules/mappers/mod_alias.c line=418 column=24
s
erverconf-> : enter=0, leave=0
-
>aliases : modules/mappers/mod_alias.c line=48 column=25
a
liases, 0, &status : modules/mappers/mod_alias.c line=420 column=9
s
tatus)) != : true=0, false=0
!
= NULL) {
459        r : modules/mappers/mod_alias.c line=415 column=47
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename = : enter=0, leave=0
=
 ret : modules/mappers/mod_alias.c line=419 column=11
r
et;
460        return : pass=0
r
eturn OK;
461    }
462
463    return : pass=0
r
eturn DECLINED;
464}
465
466static int fixup_redir : call=0
f
ixup_redir(request_rec *r)
467{
468    void *dconf = r : modules/mappers/mod_alias.c line=466 column=37
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config;
469    alias_dir_conf *dirconf =
470    (alias_dir_conf *) ap_get_module_config(dconf : modules/mappers/mod_alias.c line=468 column=11
d
conf, &alias_module : modules/mappers/mod_alias.c line=56 column=31
a
lias_module);
471    char *ret;
472    int status;
473
474    /* It may have changed since last time, so try again */
475
476    if : true=0, false=0
i
f ((ret : modules/mappers/mod_alias.c line=471 column=11
r
et = : pass=0
=
 try_alias_list : enter=0, leave=0

try_alias_list : modules/mappers/mod_alias.c line=336 column=14
t
ry_alias_list(r : modules/mappers/mod_alias.c line=466 column=37
r
dirconf : modules/mappers/mod_alias.c line=469 column=21
d
irconf-> : enter=0, leave=0
-
>redirects : modules/mappers/mod_alias.c line=53 column=25
r
edirects, 1, &status : modules/mappers/mod_alias.c line=472 column=9
s
tatus)) != : true=0, false=0
!
= NULL) {
477        if : true=0, false=0
i
f (ap_is_HTTP_REDIRECT(status : modules/mappers/mod_alias.c line=472 column=9
s
tatus)) {
478            if : true=0, false=0
i
f (ret : modules/mappers/mod_alias.c line=471 column=11
r
et[] : enter=0, leave=0
[
0] == : true=0, false=0
=
= '/') {
479                char *orig_target = ret : modules/mappers/mod_alias.c line=471 column=11
r
et;
480
481                ret : modules/mappers/mod_alias.c line=471 column=11
r
et = : pass=0
=
 ap_construct_url : enter=0, leave=0

ap_construct_url : include/http_core.h line=221 column=20
a
p_construct_url(r : modules/mappers/mod_alias.c line=466 column=37
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, ret : modules/mappers/mod_alias.c line=471 column=11
r
et, r : modules/mappers/mod_alias.c line=466 column=37
r
);
482                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r : modules/mappers/mod_alias.c line=466 column=37
r
,
483                              "incomplete redirection target of '%s' for "
484                              "URI '%s' modified to '%s'",
485                              orig_target : modules/mappers/mod_alias.c line=479 column=23
o
rig_target, r : modules/mappers/mod_alias.c line=466 column=37
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri, ret : modules/mappers/mod_alias.c line=471 column=11
r
et);
486            }
487            if : true=0, false=0
i
f (! : true=0, false=0
!
ap_is_url : enter=0, leave=0

ap_is_url : include/httpd.h line=1448 column=17
a
p_is_url(ret : modules/mappers/mod_alias.c line=471 column=11
r
et)) {
488                status : modules/mappers/mod_alias.c line=472 column=9
s
tatus = : pass=0
=
 HTTP_INTERNAL_SERVER_ERROR;
489                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/mappers/mod_alias.c line=466 column=37
r
,
490                              "cannot redirect '%s' to '%s'; "
491                              "target is not a valid absoluteURI or abs_path",
492                              r : modules/mappers/mod_alias.c line=466 column=37
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri, ret : modules/mappers/mod_alias.c line=471 column=11
r
et);
493            }
494            else {
495                /* append requested query only, if the config didn't
496                 * supply its own.
497                 */
498                if : true=0, false=0
i
f (r : modules/mappers/mod_alias.c line=466 column=37
r
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>args : include/httpd.h line=955 column=11
a
rgs && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
ap_strchr(ret : modules/mappers/mod_alias.c line=471 column=11
r
et, '?')) {
499                    ret : modules/mappers/mod_alias.c line=471 column=11
r
et = : pass=0
=
 apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/mappers/mod_alias.c line=466 column=37
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, ret : modules/mappers/mod_alias.c line=471 column=11
r
et, "?", r : modules/mappers/mod_alias.c line=466 column=37
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs, NULL);
500                }
501                apr_table_setn : enter=0, leave=0

apr_table_setn : /usr/include/apr-1/apr_tables.h line=282 column=19
a
pr_table_setn(r : modules/mappers/mod_alias.c line=466 column=37
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Location", ret : modules/mappers/mod_alias.c line=471 column=11
r
et);
502            }
503        }
504        return : pass=0
r
eturn status : modules/mappers/mod_alias.c line=472 column=9
s
tatus;
505    }
506
507    return : pass=0
r
eturn DECLINED;
508}
509
510static void register_hooks : call=1
r
egister_hooks(apr_pool_t *p)
511{
512    static const char * const aszSucc[]={ "mod_userdir.c",
513                                          "mod_vhost_alias.c",NULL };
514
515    ap_hook_translate_name : enter=1, leave=1

ap_hook_translate_name : modules/mappers/ line=142 column=1
a
p_hook_translate_name(translate_alias_redir : modules/mappers/mod_alias.c line=415 column=12
t
ranslate_alias_redir,NULL,aszSucc : modules/mappers/mod_alias.c line=512 column=31
a
szSucc,APR_HOOK_MIDDLE);
516    ap_hook_fixups : enter=1, leave=1

ap_hook_fixups : modules/mappers/ line=214 column=1
a
p_hook_fixups(fixup_redir : modules/mappers/mod_alias.c line=466 column=12
f
ixup_redir,NULL,NULL,APR_HOOK_MIDDLE);
517}
518
519module AP_MODULE_DECLARE_DATA alias_module =
520{
521    STANDARD20_MODULE_STUFF,
522    create_alias_dir_config : modules/mappers/mod_alias.c line=68 column=14
c
reate_alias_dir_config,       /* dir config creater */
523    merge_alias_dir_config : modules/mappers/mod_alias.c line=88 column=14
m
erge_alias_dir_config,        /* dir merger --- default is to override */
524    create_alias_config : modules/mappers/mod_alias.c line=58 column=14
c
reate_alias_config,           /* server config */
525    merge_alias_config : modules/mappers/mod_alias.c line=76 column=14
m
erge_alias_config,            /* merge server configs */
526    alias_cmds : modules/mappers/mod_alias.c line=270 column=26
a
lias_cmds,                    /* command apr_table_t */
527    register_hooks : modules/mappers/mod_alias.c line=510 column=13
r
egister_hooks                 /* register hooks */
528};
529[EOF]


Generated by expcov