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

 Index  Statistics  Last 
Directory./modules/http
Filenamemod_mime.c
ModifiedFri Dec 18 23:10:56 2009

Pass Half Fail Excluded Total
Function
2
11.11%
16
88.89%
0
0.00%
18
100%
Expressions
9
1.54%
575
98.46%
0
0.00%
584
100%
Conditions
0
0.00%
0
0.00%
148
100.00%
0
0.00%
148
100%
MC/DC
0
0.00%
75
100.00%
0
0.00%
75
100%
Branches

if
0
0.00%
0
0.00%
92
100.00%
0
0.00%
92
100%
for
0
0.00%
0
0.00%
2
100.00%
0
0.00%
2
100%
while
0
0.00%
0
0.00%
19
100.00%
0
0.00%
19
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_mime.c: Sends/gets MIME headers for requests
19 *
20 * Rob McCool
21 *
22 */
23
24#include "apr.h"
25#include "apr_strings.h"
26#include "apr_lib.h"
27#include "apr_hash.h"
28
29#define APR_WANT_STRFUNC
30#include "apr_want.h"
31
32#include "ap_config.h"
33#include "httpd.h"
34#include "http_config.h"
35#include "http_log.h"
36#include "http_request.h"
37#include "http_protocol.h"
38
39/* XXXX - fix me / EBCDIC
40 *        there was a cludge here which would use its
41 *        own version apr_isascii(). Indicating that
42 *        on some platforms that might be needed.
43 *
44 *        #define OS_ASC(c) (c)             -- for mere mortals
45 *     or
46 *        #define OS_ASC(c) (ebcdic2ascii[c]) -- for dino's
47 *
48 *        #define apr_isascii(c) ((OS_ASC(c) & 0x80) == 0)
49 */
50
51/* XXXXX - fix me - See note with NOT_PROXY
52 */
53
54typedef struct attrib_info {
55    char *name;
56    int   offset;
57} attrib_info;
58
59/* Information to which an extension can be mapped
60 */
61typedef struct extension_info {
62    char *forced_type;                /* Additional AddTyped stuff */
63    char *encoding_type;              /* Added with AddEncoding... */
64    char *language_type;              /* Added with AddLanguage... */
65    char *handler;                    /* Added with AddHandler... */
66    char *charset_type;               /* Added with AddCharset... */
67    char *input_filters;              /* Added with AddInputFilter... */
68    char *output_filters;             /* Added with AddOutputFilter... */
69} extension_info;
70
71#define MULTIMATCH_UNSET      0
72#define MULTIMATCH_ANY        1
73#define MULTIMATCH_NEGOTIATED 2
74#define MULTIMATCH_HANDLERS   4
75#define MULTIMATCH_FILTERS    8
76
77typedef struct {
78    apr_hash_t *extension_mappings;  /* Map from extension name to
79                                      * extension_info structure */
80
81    apr_array_header_t *remove_mappings; /* A simple list, walked once */
82
83    char *default_language;     /* Language if no AddLanguage ext found */
84
85    int multimatch;       /* Extensions to include in multiview matching
86                           * for filenames, e.g. Filters and Handlers
87                           */
88    int use_path_info;    /* If set to 0, only use filename.
89                           * If set to 1, append PATH_INFO to filename for
90                           *   lookups.
91                           * If set to 2, this value is unset and is
92                           *   effectively 0.
93                           */
94} mime_dir_config;
95
96typedef struct param_s {
97    char *attr;
98    char *val;
99    struct param_s *next;
100} param;
101
102typedef struct {
103    const char *type;
104    apr_size_t type_len;
105    const char *subtype;
106    apr_size_t subtype_len;
107    param *param;
108} content_type;
109
110static char tspecial[] = {
111    '(', ')', '<', '>', '@', ',', ';', ':',
112    '\\', '"', '/', '[', ']', '?', '=',
113    '\0'
114};
115
116module AP_MODULE_DECLARE_DATA mime_module;
117
118static void *create_mime_dir_config : call=1
c
reate_mime_dir_config(apr_pool_t *p, char *dummy)
119{
120    mime_dir_config *new = apr_palloc : enter=1, leave=1

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : modules/http/mod_mime.c line=118 column=49
p
, sizeof(mime_dir_config));
121
122    new : modules/http/mod_mime.c line=120 column=22
n
ew-> : enter=1, leave=1
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings = : enter=1, leave=1
=
 NULL;
123    new : modules/http/mod_mime.c line=120 column=22
n
ew-> : enter=1, leave=1
-
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings = : enter=1, leave=1
=
 NULL;
124
125    new : modules/http/mod_mime.c line=120 column=22
n
ew-> : enter=1, leave=1
-
>default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language = : enter=1, leave=1
=
 NULL;
126
127    new : modules/http/mod_mime.c line=120 column=22
n
ew-> : enter=1, leave=1
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch = : enter=1, leave=1
=
 MULTIMATCH_UNSET;
128
129    new : modules/http/mod_mime.c line=120 column=22
n
ew-> : enter=1, leave=1
-
>use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info = : enter=1, leave=1
=
 2;
130
131    return : pass=1
r
eturn new : modules/http/mod_mime.c line=120 column=22
n
ew;
132}
133/*
134 * Overlay one hash table of extension_mappings onto another
135 */
136static void *overlay_extension_mappings : call=0
o
verlay_extension_mappings(apr_pool_t *p,
137                                        const void *key,
138                                        apr_ssize_t klen,
139                                        const void *overlay_val,
140                                        const void *base_val,
141                                        const void *data)
142{
143    const extension_info *overlay_info = (const extension_info *)overlay_val : modules/http/mod_mime.c line=139 column=53
o
verlay_val;
144    const extension_info *base_info = (const extension_info *)base_val : modules/http/mod_mime.c line=140 column=53
b
ase_val;
145    extension_info *new_info = apr_pmemdup : enter=0, leave=0

apr_pmemdup : /usr/include/apr-1/apr_strings.h line=131 column=21
a
pr_pmemdup(p : modules/http/mod_mime.c line=136 column=53
p
base_info : modules/http/mod_mime.c line=144 column=27
b
ase_info, sizeof(extension_info));
146
147    if : true=0, false=0
i
f (overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type) {
148        new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info-> : enter=0, leave=0
-
>forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type = : enter=0, leave=0
=
 overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type;
149    }
150    if : true=0, false=0
i
f (overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type) {
151        new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info-> : enter=0, leave=0
-
>encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type = : enter=0, leave=0
=
 overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type;
152    }
153    if : true=0, false=0
i
f (overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>language_type : modules/http/mod_mime.c line=64 column=11
l
anguage_type) {
154        new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info-> : enter=0, leave=0
-
>language_type : modules/http/mod_mime.c line=64 column=11
l
anguage_type = : enter=0, leave=0
=
 overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>language_type : modules/http/mod_mime.c line=64 column=11
l
anguage_type;
155    }
156    if : true=0, false=0
i
f (overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>handler : modules/http/mod_mime.c line=65 column=11
h
andler) {
157        new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info-> : enter=0, leave=0
-
>handler : modules/http/mod_mime.c line=65 column=11
h
andler = : enter=0, leave=0
=
 overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>handler : modules/http/mod_mime.c line=65 column=11
h
andler;
158    }
159    if : true=0, false=0
i
f (overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>charset_type : modules/http/mod_mime.c line=66 column=11
c
harset_type) {
160        new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info-> : enter=0, leave=0
-
>charset_type : modules/http/mod_mime.c line=66 column=11
c
harset_type = : enter=0, leave=0
=
 overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>charset_type : modules/http/mod_mime.c line=66 column=11
c
harset_type;
161    }
162    if : true=0, false=0
i
f (overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>input_filters : modules/http/mod_mime.c line=67 column=11
i
nput_filters) {
163        new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info-> : enter=0, leave=0
-
>input_filters : modules/http/mod_mime.c line=67 column=11
i
nput_filters = : enter=0, leave=0
=
 overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>input_filters : modules/http/mod_mime.c line=67 column=11
i
nput_filters;
164    }
165    if : true=0, false=0
i
f (overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>output_filters : modules/http/mod_mime.c line=68 column=11
o
utput_filters) {
166        new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info-> : enter=0, leave=0
-
>output_filters : modules/http/mod_mime.c line=68 column=11
o
utput_filters = : enter=0, leave=0
=
 overlay_info : modules/http/mod_mime.c line=143 column=27
o
verlay_info-> : enter=0, leave=0
-
>output_filters : modules/http/mod_mime.c line=68 column=11
o
utput_filters;
167    }
168
169    return : pass=0
r
eturn new_info : modules/http/mod_mime.c line=145 column=21
n
ew_info;
170}
171
172/* Member is the offset within an extension_info of the pointer to reset
173 */
174static void remove_items : call=0
r
emove_items(apr_pool_t *p, apr_array_header_t *remove,
175                         apr_hash_t *mappings)
176{
177    attrib_info *suffix = (attrib_info *) remove : modules/http/mod_mime.c line=174 column=61
r
emove-> : enter=0, leave=0
-
>elts : /usr/include/apr-1/apr_tables.h line=62 column=11 elts;
178    int i;
179    for : true=0, false=0
f
or (i : modules/http/mod_mime.c line=178 column=9
i
 = : pass=0
=
 0; i : modules/http/mod_mime.c line=178 column=9
i
 < : true=0, false=0
<
 remove : modules/http/mod_mime.c line=174 column=61
r
emove-> : enter=0, leave=0
-
>nelts : /usr/include/apr-1/apr_tables.h line=58 column=9 nelts; i : modules/http/mod_mime.c line=178 column=9
i
++ : pass=0
+
+) {
180        extension_info *exinfo = apr_hash_get : enter=0, leave=0

apr_hash_get : /usr/include/apr-1/apr_hash.h line=117 column=21
a
pr_hash_get(mappings : modules/http/mod_mime.c line=175 column=38
m
appings,
181                                              suffix : modules/http/mod_mime.c line=177 column=18
s
uffix[] : enter=0, leave=0
[
i : modules/http/mod_mime.c line=178 column=9
i
].name : modules/http/mod_mime.c line=55 column=11
n
ame,
182                                              APR_HASH_KEY_STRING);
183        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

exinfo : modules/http/mod_mime.c line=180 column=25
eTF
xinfo && : true=0, false=0
&
MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
(const char**)((char *)exinfo : modules/http/mod_mime.c line=180 column=25
e
xinfo + : pass=0
+
 suffix : modules/http/mod_mime.c line=177 column=18
s
uffix[] : enter=0, leave=0
[
i : modules/http/mod_mime.c line=178 column=9
i
].offset : modules/http/mod_mime.c line=56 column=11
o
ffset)) {
184            extension_info *copyinfo = exinfo : modules/http/mod_mime.c line=180 column=25
e
xinfo;
185            exinfo : modules/http/mod_mime.c line=180 column=25
e
xinfo = : pass=0
=
 (extension_info*)apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : modules/http/mod_mime.c line=174 column=38
p
, sizeof(*exinfo));
186            apr_hash_set : enter=0, leave=0

apr_hash_set : /usr/include/apr-1/apr_hash.h line=107 column=19
a
pr_hash_set(mappings : modules/http/mod_mime.c line=175 column=38
m
appings, suffix : modules/http/mod_mime.c line=177 column=18
s
uffix[] : enter=0, leave=0
[
i : modules/http/mod_mime.c line=178 column=9
i
].name : modules/http/mod_mime.c line=55 column=11
n
ame,
187                         APR_HASH_KEY_STRING, exinfo : modules/http/mod_mime.c line=180 column=25
e
xinfo);
188            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(exinfo : modules/http/mod_mime.c line=180 column=25
e
xinfo, copyinfo : modules/http/mod_mime.c line=184 column=29
c
opyinfo, sizeof(*exinfo));
189            *(const char**)((char *)exinfo : modules/http/mod_mime.c line=180 column=25
e
xinfo + : pass=0
+
 suffix : modules/http/mod_mime.c line=177 column=18
s
uffix[] : enter=0, leave=0
[
i : modules/http/mod_mime.c line=178 column=9
i
].offset : modules/http/mod_mime.c line=56 column=11
o
ffset) = : enter=0, leave=0
=
 NULL;
190        }
191    }
192}
193
194static void *merge_mime_dir_configs : call=0
m
erge_mime_dir_configs(apr_pool_t *p, void *basev, void *addv)
195{
196    mime_dir_config *base = (mime_dir_config *)basev : modules/http/mod_mime.c line=194 column=58
b
asev;
197    mime_dir_config *add = (mime_dir_config *)addv : modules/http/mod_mime.c line=194 column=71
a
ddv;
198    mime_dir_config *new = apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : modules/http/mod_mime.c line=194 column=49
p
, sizeof(mime_dir_config));
199
200    if : true=0, false=0
i
f (base : modules/http/mod_mime.c line=196 column=22
b
aseMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings && : true=0, false=0
&
add : modules/http/mod_mime.c line=197 column=22
a
ddMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings) {
201        new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings = : enter=0, leave=0
=
 apr_hash_merge : enter=0, leave=0

apr_hash_merge : /usr/include/apr-1/apr_hash.h line=210 column=27
a
pr_hash_merge(p : modules/http/mod_mime.c line=194 column=49
p
add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings,
202                                                 base : modules/http/mod_mime.c line=196 column=22
b
ase-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings,
203                                                 overlay_extension_mappings : modules/http/mod_mime.c line=136 column=14
o
verlay_extension_mappings,
204                                                 NULL);
205    }
206    else {
207        if : true=0, false=0
i
f (base : modules/http/mod_mime.c line=196 column=22
b
ase-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings == : true=0, false=0
=
= NULL) {
208            new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings = : enter=0, leave=0
=
 add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings;
209        }
210        else {
211            new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings = : enter=0, leave=0
=
 base : modules/http/mod_mime.c line=196 column=22
b
ase-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings;
212        }
213        /* We may not be merging the tables, but if we potentially will change
214         * an exinfo member, then we are about to trounce it anyways.
215         * We must have a copy for safety.
216         */
217        if : true=0, false=0
i
f (new : modules/http/mod_mime.c line=198 column=22
n
ewMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings && : true=0, false=0
&
add : modules/http/mod_mime.c line=197 column=22
a
ddMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings) {
218            new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings = : enter=0, leave=0
=
219                apr_hash_copy : enter=0, leave=0

apr_hash_copy : /usr/include/apr-1/apr_hash.h line=96 column=27
a
pr_hash_copy(p : modules/http/mod_mime.c line=194 column=49
p
new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings);
220        }
221    }
222
223    if : true=0, false=0
i
f (new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings) {
224        if : true=0, false=0
i
f (add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings)
225            remove_items : enter=0, leave=0

remove_items : modules/http/mod_mime.c line=174 column=13
r
emove_items(p : modules/http/mod_mime.c line=194 column=49
p
add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings, new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings);
226    }
227    new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings = : enter=0, leave=0
=
 NULL;
228
229    new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language = : enter=0, leave=0
=
 add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language conditional operator : true=0, false=0
?
230        add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language : base : modules/http/mod_mime.c line=196 column=22
b
ase-> : enter=0, leave=0
-
>default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language;
231
232    new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch = : enter=0, leave=0
=
 (add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch != : true=0, false=0
!
= MULTIMATCH_UNSET) conditional operator : true=0, false=0
?
233        add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch : base : modules/http/mod_mime.c line=196 column=22
b
ase-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch;
234
235    if : true=0, false=0
i
f ((add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info & : pass=0
&
 2) == : true=0, false=0
=
= 0) {
236        new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info = : enter=0, leave=0
=
 add : modules/http/mod_mime.c line=197 column=22
a
dd-> : enter=0, leave=0
-
>use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info;
237    }
238    else {
239        new : modules/http/mod_mime.c line=198 column=22
n
ew-> : enter=0, leave=0
-
>use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info = : enter=0, leave=0
=
 base : modules/http/mod_mime.c line=196 column=22
b
ase-> : enter=0, leave=0
-
>use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info;
240    }
241
242    return : pass=0
r
eturn new : modules/http/mod_mime.c line=198 column=22
n
ew;
243}
244
245static const char *add_extension_info : call=0
a
dd_extension_info(cmd_parms *cmd, void *m_,
246                                      const char *value_, const char* ext)
247{
248    mime_dir_config *m=m_ : modules/http/mod_mime.c line=245 column=61
m
_;
249    extension_info *exinfo;
250    int offset = (int) (long) cmd : modules/http/mod_mime.c line=245 column=50
c
md-> : enter=0, leave=0
-
>info : include/http_config.h line=275 column=11
i
nfo;
251    char *key = apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(cmd : modules/http/mod_mime.c line=245 column=50
c
md-> : enter=0, leave=0
-
>temp_pool : include/http_config.h line=294 column=17
t
emp_pool, ext : modules/http/mod_mime.c line=246 column=71
e
xt);
252    char *value = apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(cmd : modules/http/mod_mime.c line=245 column=50
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, value_ : modules/http/mod_mime.c line=246 column=51
v
alue_);
253    ap_str_tolower : enter=0, leave=0

ap_str_tolower : include/httpd.h line=1739 column=18
a
p_str_tolower(value : modules/http/mod_mime.c line=252 column=11
v
alue);
254    ap_str_tolower : enter=0, leave=0

ap_str_tolower : include/httpd.h line=1739 column=18
a
p_str_tolower(key : modules/http/mod_mime.c line=251 column=11
k
ey);
255
256    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
key : modules/http/mod_mime.c line=251 column=11
k
ey == : true=0, false=0
=
= '.') {
257        ++ : pass=0
+
+key : modules/http/mod_mime.c line=251 column=11
k
ey;
258    }
259    if : true=0, false=0
i
f (! : true=0, false=0
!
m : modules/http/mod_mime.c line=248 column=22
m
-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings) {
260        m : modules/http/mod_mime.c line=248 column=22
m
-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings = : enter=0, leave=0
=
 apr_hash_make : enter=0, leave=0

apr_hash_make : /usr/include/apr-1/apr_hash.h line=78 column=27
a
pr_hash_make(cmd : modules/http/mod_mime.c line=245 column=50
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool);
261        exinfo : modules/http/mod_mime.c line=249 column=21
e
xinfo = : pass=0
=
 NULL;
262    }
263    else {
264        exinfo : modules/http/mod_mime.c line=249 column=21
e
xinfo = : pass=0
=
 (extension_info*)apr_hash_get : enter=0, leave=0

apr_hash_get : /usr/include/apr-1/apr_hash.h line=117 column=21
a
pr_hash_get(m : modules/http/mod_mime.c line=248 column=22
m
-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings, key : modules/http/mod_mime.c line=251 column=11
k
ey,
265                                               APR_HASH_KEY_STRING);
266    }
267    if : true=0, false=0
i
f (! : true=0, false=0
!
exinfo : modules/http/mod_mime.c line=249 column=21
e
xinfo) {
268        exinfo : modules/http/mod_mime.c line=249 column=21
e
xinfo = : pass=0
=
 apr_pcalloc(cmd : modules/http/mod_mime.c line=245 column=50
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, sizeof(extension_info));
269        key : modules/http/mod_mime.c line=251 column=11
k
ey = : pass=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(cmd : modules/http/mod_mime.c line=245 column=50
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, key : modules/http/mod_mime.c line=251 column=11
k
ey);
270        apr_hash_set : enter=0, leave=0

apr_hash_set : /usr/include/apr-1/apr_hash.h line=107 column=19
a
pr_hash_set(m : modules/http/mod_mime.c line=248 column=22
m
-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings, key : modules/http/mod_mime.c line=251 column=11
k
ey, APR_HASH_KEY_STRING, exinfo : modules/http/mod_mime.c line=249 column=21
e
xinfo);
271    }
272    *(const char**)((char *)exinfo : modules/http/mod_mime.c line=249 column=21
e
xinfo + : pass=0
+
 offset : modules/http/mod_mime.c line=250 column=9
o
ffset) = : enter=0, leave=0
=
 value : modules/http/mod_mime.c line=252 column=11
v
alue;
273    return : pass=0
r
eturn NULL;
274}
275
276/*
277 * As RemoveType should also override the info from TypesConfig, we add an
278 * empty string as type instead of actually removing the type.
279 */
280static const char *remove_extension_type : call=0
r
emove_extension_type(cmd_parms *cmd, void *m_,
281                                         const char *ext)
282{
283    return : pass=0
r
eturn add_extension_info : enter=0, leave=0

add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info(cmd : modules/http/mod_mime.c line=280 column=53
c
md, m_ : modules/http/mod_mime.c line=280 column=64
m
_, "", ext : modules/http/mod_mime.c line=281 column=54
e
xt);
284}
285
286/*
287 * Note handler names are un-added with each per_dir_config merge.
288 * This keeps the association from being inherited, but not
289 * from being re-added at a subordinate level.
290 */
291static const char *remove_extension_info : call=0
r
emove_extension_info(cmd_parms *cmd, void *m_,
292                                         const char *ext)
293{
294    mime_dir_config *m = (mime_dir_config *) m_ : modules/http/mod_mime.c line=291 column=64
m
_;
295    attrib_info *suffix;
296    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
ext : modules/http/mod_mime.c line=292 column=54
e
xt == : true=0, false=0
=
= '.') {
297        ++ : pass=0
+
+ext : modules/http/mod_mime.c line=292 column=54
e
xt;
298    }
299    if : true=0, false=0
i
f (! : true=0, false=0
!
m : modules/http/mod_mime.c line=294 column=22
m
-> : enter=0, leave=0
-
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings) {
300        m : modules/http/mod_mime.c line=294 column=22
m
-> : enter=0, leave=0
-
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings = : enter=0, leave=0
=
 apr_array_make : enter=0, leave=0

apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
a
pr_array_make(cmd : modules/http/mod_mime.c line=291 column=53
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, 4, sizeof(*suffix));
301    }
302    suffix : modules/http/mod_mime.c line=295 column=18
s
uffix = : pass=0
=
 (attrib_info *)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(m : modules/http/mod_mime.c line=294 column=22
m
-> : enter=0, leave=0
-
>remove_mappings : modules/http/mod_mime.c line=81 column=25
r
emove_mappings);
303    suffix : modules/http/mod_mime.c line=295 column=18
s
uffix-> : enter=0, leave=0
-
>name : modules/http/mod_mime.c line=55 column=11
n
ame = : enter=0, leave=0
=
 apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(cmd : modules/http/mod_mime.c line=291 column=53
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, ext : modules/http/mod_mime.c line=292 column=54
e
xt);
304    ap_str_tolower : enter=0, leave=0

ap_str_tolower : include/httpd.h line=1739 column=18
a
p_str_tolower(suffix : modules/http/mod_mime.c line=295 column=18
s
uffix-> : enter=0, leave=0
-
>name : modules/http/mod_mime.c line=55 column=11
n
ame);
305    suffix : modules/http/mod_mime.c line=295 column=18
s
uffix-> : enter=0, leave=0
-
>offset : modules/http/mod_mime.c line=56 column=11
o
ffset = : enter=0, leave=0
=
 (int) (long) cmd : modules/http/mod_mime.c line=291 column=53
c
md-> : enter=0, leave=0
-
>info : include/http_config.h line=275 column=11
i
nfo;
306    return : pass=0
r
eturn NULL;
307}
308
309/* The sole bit of server configuration that the MIME module has is
310 * the name of its config file, so...
311 */
312
313static const char *set_types_config : call=0
s
et_types_config(cmd_parms *cmd, void *dummy,
314                                    const char *arg)
315{
316    ap_set_module_config(cmd : modules/http/mod_mime.c line=313 column=48
c
md-> : enter=0, leave=0
-
>server : include/http_config.h line=296 column=17
s
erver-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config, &mime_module : modules/http/mod_mime.c line=116 column=31
m
ime_module,
317                         (void *)arg : modules/http/mod_mime.c line=314 column=49
a
rg);
318    return : pass=0
r
eturn NULL;
319}
320
321static const char *multiviews_match : call=0
m
ultiviews_match(cmd_parms *cmd, void *m_,
322                                    const char *include)
323{
324    mime_dir_config *m = (mime_dir_config *) m_ : modules/http/mod_mime.c line=321 column=59
m
_;
325    const char *errmsg;
326
327    errmsg : modules/http/mod_mime.c line=325 column=17
e
rrmsg = : pass=0
=
 ap_check_cmd_context : enter=0, leave=0

ap_check_cmd_context : include/http_config.h line=710 column=26
a
p_check_cmd_context(cmd : modules/http/mod_mime.c line=321 column=48
c
md, NOT_IN_LOCATION);
328    if : true=0, false=0
i
f (errmsg : modules/http/mod_mime.c line=325 column=17
e
rrmsg != : true=0, false=0
!
= NULL) {
329        return : pass=0
r
eturn errmsg : modules/http/mod_mime.c line=325 column=17
e
rrmsg;
330    }
331
332    if : true=0, false=0
i
f (strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(include : modules/http/mod_mime.c line=322 column=49
i
nclude, "Any") == : true=0, false=0
=
= 0) {
333        if : true=0, false=0
i
f (m : modules/http/mod_mime.c line=324 column=22
m
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch && : true=0, false=0
&
& (m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 ~ : pass=0
~
MULTIMATCH_ANY)) {
334            return : pass=0
r
eturn "Any is incompatible with NegotiatedOnly, "
335                   "Filters and Handlers";
336        }
337        m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch |= : enter=0, leave=0
|
= MULTIMATCH_ANY;
338    }
339    else if : true=0, false=0
i
f (strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(include : modules/http/mod_mime.c line=322 column=49
i
nclude, "NegotiatedOnly") == : true=0, false=0
=
= 0) {
340        if : true=0, false=0
i
f (m : modules/http/mod_mime.c line=324 column=22
m
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch && : true=0, false=0
&
& (m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 ~ : pass=0
~
MULTIMATCH_NEGOTIATED)) {
341            return : pass=0
r
eturn "NegotiatedOnly is incompatible with Any, "
342                   "Filters and Handlers";
343        }
344        m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch |= : enter=0, leave=0
|
= MULTIMATCH_NEGOTIATED;
345    }
346    else if : true=0, false=0
i
f (strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(include : modules/http/mod_mime.c line=322 column=49
i
nclude, "Filters") == : true=0, false=0
=
= 0) {
347        if : true=0, false=0
i
f (m : modules/http/mod_mime.c line=324 column=22
m
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch && : true=0, false=0
&
& (m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 (MULTIMATCH_NEGOTIATED
348                                             | : pass=0
|
 MULTIMATCH_ANY))) {
349            return : pass=0
r
eturn "Filters is incompatible with Any and NegotiatedOnly";
350        }
351        m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch |= : enter=0, leave=0
|
= MULTIMATCH_FILTERS;
352    }
353    else if : true=0, false=0
i
f (strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(include : modules/http/mod_mime.c line=322 column=49
i
nclude, "Handlers") == : true=0, false=0
=
= 0) {
354        if : true=0, false=0
i
f (m : modules/http/mod_mime.c line=324 column=22
m
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch && : true=0, false=0
&
& (m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 (MULTIMATCH_NEGOTIATED
355                                             | : pass=0
|
 MULTIMATCH_ANY))) {
356            return : pass=0
r
eturn "Handlers is incompatible with Any and NegotiatedOnly";
357        }
358        m : modules/http/mod_mime.c line=324 column=22
m
-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch |= : enter=0, leave=0
|
= MULTIMATCH_HANDLERS;
359    }
360    else {
361        return : pass=0
r
eturn apr_psprintf : enter=0, leave=0

apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
a
pr_psprintf(cmd : modules/http/mod_mime.c line=321 column=48
c
md-> : enter=0, leave=0
-
>pool : include/http_config.h line=291 column=17
p
ool, "Unrecognized option '%s'", include : modules/http/mod_mime.c line=322 column=49
i
nclude);
362    }
363
364    return : pass=0
r
eturn NULL;
365}
366
367static const command_rec mime_cmds[] =
368{
369    AP_INIT_ITERATE2("AddCharset", add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info,
370        (void *)APR_OFFSETOF(extension_info, charset_type : modules/http/mod_mime.c line=66 column=11
c
harset_type), OR_FILEINFO,
371        "a charset (e.g., iso-2022-jp), followed by one or more "
372        "file extensions"),
373    AP_INIT_ITERATE2("AddEncoding", add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info,
374        (void *)APR_OFFSETOF(extension_info, encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type), OR_FILEINFO,
375        "an encoding (e.g., gzip), followed by one or more file extensions"),
376    AP_INIT_ITERATE2("AddHandler", add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info,
377        (void *)APR_OFFSETOF(extension_info, handler : modules/http/mod_mime.c line=65 column=11
h
andler), OR_FILEINFO,
378        "a handler name followed by one or more file extensions"),
379    AP_INIT_ITERATE2("AddInputFilter", add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info,
380        (void *)APR_OFFSETOF(extension_info, input_filters : modules/http/mod_mime.c line=67 column=11
i
nput_filters), OR_FILEINFO,
381        "input filter name (or ; delimited names) followed by one or "
382        "more file extensions"),
383    AP_INIT_ITERATE2("AddLanguage", add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info,
384        (void *)APR_OFFSETOF(extension_info, language_type : modules/http/mod_mime.c line=64 column=11
l
anguage_type), OR_FILEINFO,
385        "a language (e.g., fr), followed by one or more file extensions"),
386    AP_INIT_ITERATE2("AddOutputFilter", add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info,
387        (void *)APR_OFFSETOF(extension_info, output_filters : modules/http/mod_mime.c line=68 column=11
o
utput_filters), OR_FILEINFO,
388        "output filter name (or ; delimited names) followed by one or "
389        "more file extensions"),
390    AP_INIT_ITERATE2("AddType", add_extension_info : modules/http/mod_mime.c line=245 column=20
a
dd_extension_info,
391        (void *)APR_OFFSETOF(extension_info, forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type), OR_FILEINFO,
392        "a mime type followed by one or more file extensions"),
393    AP_INIT_TAKE1("DefaultLanguage", ap_set_string_slot : include/http_config.h line=478 column=33
a
p_set_string_slot,
394        (void*)APR_OFFSETOF(mime_dir_config, default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language), OR_FILEINFO,
395        "language to use for documents with no other language file extension"),
396    AP_INIT_ITERATE("MultiviewsMatch", multiviews_match : modules/http/mod_mime.c line=321 column=20
m
ultiviews_match, NULL, OR_FILEINFO,
397        "NegotiatedOnly (default), Handlers and/or Filters, or Any"),
398    AP_INIT_ITERATE("RemoveCharset", remove_extension_info : modules/http/mod_mime.c line=291 column=20
r
emove_extension_info,
399        (void *)APR_OFFSETOF(extension_info, charset_type : modules/http/mod_mime.c line=66 column=11
c
harset_type), OR_FILEINFO,
400        "one or more file extensions"),
401    AP_INIT_ITERATE("RemoveEncoding", remove_extension_info : modules/http/mod_mime.c line=291 column=20
r
emove_extension_info,
402        (void *)APR_OFFSETOF(extension_info, encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type), OR_FILEINFO,
403        "one or more file extensions"),
404    AP_INIT_ITERATE("RemoveHandler", remove_extension_info : modules/http/mod_mime.c line=291 column=20
r
emove_extension_info,
405        (void *)APR_OFFSETOF(extension_info, handler : modules/http/mod_mime.c line=65 column=11
h
andler), OR_FILEINFO,
406        "one or more file extensions"),
407    AP_INIT_ITERATE("RemoveInputFilter", remove_extension_info : modules/http/mod_mime.c line=291 column=20
r
emove_extension_info,
408        (void *)APR_OFFSETOF(extension_info, input_filters : modules/http/mod_mime.c line=67 column=11
i
nput_filters), OR_FILEINFO,
409        "one or more file extensions"),
410    AP_INIT_ITERATE("RemoveLanguage", remove_extension_info : modules/http/mod_mime.c line=291 column=20
r
emove_extension_info,
411        (void *)APR_OFFSETOF(extension_info, language_type : modules/http/mod_mime.c line=64 column=11
l
anguage_type), OR_FILEINFO,
412        "one or more file extensions"),
413    AP_INIT_ITERATE("RemoveOutputFilter", remove_extension_info : modules/http/mod_mime.c line=291 column=20
r
emove_extension_info,
414        (void *)APR_OFFSETOF(extension_info, output_filters : modules/http/mod_mime.c line=68 column=11
o
utput_filters), OR_FILEINFO,
415        "one or more file extensions"),
416    AP_INIT_ITERATE("RemoveType", remove_extension_type : modules/http/mod_mime.c line=280 column=20
r
emove_extension_type,
417        (void *)APR_OFFSETOF(extension_info, forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type), OR_FILEINFO,
418        "one or more file extensions"),
419    AP_INIT_TAKE1("TypesConfig", set_types_config : modules/http/mod_mime.c line=313 column=20
s
et_types_config, NULL, RSRC_CONF,
420        "the MIME types config file"),
421    AP_INIT_FLAG("ModMimeUsePathInfo", ap_set_flag_slot : include/http_config.h line=523 column=33
a
p_set_flag_slot,
422        (void *)APR_OFFSETOF(mime_dir_config, use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info), ACCESS_CONF,
423        "Set to 'yes' to allow mod_mime to use path info for type checking"),
424    {NULL}
425};
426
427static apr_hash_t *mime_type_extensions;
428
429static int mime_post_config : call=0
m
ime_post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
430{
431    ap_configfile_t *f;
432    char l[MAX_STRING_LEN];
433    const char *types_confname = ap_get_module_config(s : modules/http/mod_mime.c line=429 column=93
s
-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config,
434                                                      &mime_module : modules/http/mod_mime.c line=116 column=31
m
ime_module);
435    apr_status_t status;
436
437    if : true=0, false=0
i
f (! : true=0, false=0
!
types_confname : modules/http/mod_mime.c line=433 column=17
t
ypes_confname) {
438        types_confname : modules/http/mod_mime.c line=433 column=17
t
ypes_confname = : pass=0
=
 AP_TYPES_CONFIG_FILE;
439    }
440
441    types_confname : modules/http/mod_mime.c line=433 column=17
t
ypes_confname = : 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(p : modules/http/mod_mime.c line=429 column=41
p
types_confname : modules/http/mod_mime.c line=433 column=17
t
ypes_confname);
442    if : true=0, false=0
i
f (! : true=0, false=0
!
types_confname : modules/http/mod_mime.c line=433 column=17
t
ypes_confname) {
443        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_ERR, APR_EBADPATH, s : modules/http/mod_mime.c line=429 column=93
s
,
444                     "Invalid mime types config path %s",
445                     (const char *)ap_get_module_config(s : modules/http/mod_mime.c line=429 column=93
s
-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config,
446                                                        &mime_module : modules/http/mod_mime.c line=116 column=31
m
ime_module));
447        return : pass=0
r
eturn HTTP_INTERNAL_SERVER_ERROR;
448    }
449    if : true=0, false=0
i
f ((status : modules/http/mod_mime.c line=435 column=18
s
tatus = : pass=0
=
 ap_pcfg_openfile : enter=0, leave=0

ap_pcfg_openfile : include/http_config.h line=607 column=26
a
p_pcfg_openfile(&f : modules/http/mod_mime.c line=431 column=22
f
ptemp : modules/http/mod_mime.c line=429 column=74
p
temp, types_confname : modules/http/mod_mime.c line=433 column=17
t
ypes_confname))
450                != : true=0, false=0
!
= APR_SUCCESS) {
451        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_ERR, status : modules/http/mod_mime.c line=435 column=18
s
tatus, s : modules/http/mod_mime.c line=429 column=93
s
,
452                     "could not open mime types config file %s.",
453                     types_confname : modules/http/mod_mime.c line=433 column=17
t
ypes_confname);
454        return : pass=0
r
eturn HTTP_INTERNAL_SERVER_ERROR;
455    }
456
457    mime_type_extensions : modules/http/mod_mime.c line=427 column=20
m
ime_type_extensions = : pass=0
=
 apr_hash_make : enter=0, leave=0

apr_hash_make : /usr/include/apr-1/apr_hash.h line=78 column=27
a
pr_hash_make(p : modules/http/mod_mime.c line=429 column=41
p
);
458
459    while : true=0, false=0
w
hile (! : true=0, false=0
!
(ap_cfg_getline : enter=0, leave=0

ap_cfg_getline : include/http_config.h line=633 column=17
a
p_cfg_getline(l : modules/http/mod_mime.c line=432 column=10
l
, MAX_STRING_LEN, f : modules/http/mod_mime.c line=431 column=22
f
))) {
460        const char *ll = l : modules/http/mod_mime.c line=432 column=10
l
, *ct;
461
462        if : true=0, false=0
i
f (l : modules/http/mod_mime.c line=432 column=10
l
[] : enter=0, leave=0
[
0] == : true=0, false=0
=
= '#') {
463            continue : pass=0
c
ontinue;
464        }
465        ct : modules/http/mod_mime.c line=460 column=30
c
= : pass=0
=
 ap_getword_conf : enter=0, leave=0

ap_getword_conf : include/httpd.h line=1358 column=20
a
p_getword_conf(p : modules/http/mod_mime.c line=429 column=41
p
, &ll : modules/http/mod_mime.c line=460 column=21
l
l);
466
467        while : true=0, false=0
w
hile (ll : modules/http/mod_mime.c line=460 column=21
l
l[] : enter=0, leave=0
[
0]) {
468            char *ext = ap_getword_conf : enter=0, leave=0

ap_getword_conf : include/httpd.h line=1358 column=20
a
p_getword_conf(p : modules/http/mod_mime.c line=429 column=41
p
, &ll : modules/http/mod_mime.c line=460 column=21
l
l);
469            ap_str_tolower : enter=0, leave=0

ap_str_tolower : include/httpd.h line=1739 column=18
a
p_str_tolower(ext : modules/http/mod_mime.c line=468 column=19
e
xt);
470            apr_hash_set : enter=0, leave=0

apr_hash_set : /usr/include/apr-1/apr_hash.h line=107 column=19
a
pr_hash_set(mime_type_extensions : modules/http/mod_mime.c line=427 column=20
m
ime_type_extensions, ext : modules/http/mod_mime.c line=468 column=19
e
xt, APR_HASH_KEY_STRING, ct : modules/http/mod_mime.c line=460 column=30
c
t);
471        }
472    }
473    ap_cfg_closefile : enter=0, leave=0

ap_cfg_closefile : include/http_config.h line=647 column=17
a
p_cfg_closefile(f : modules/http/mod_mime.c line=431 column=22
f
);
474    return : pass=0
r
eturn OK;
475}
476
477static const char *zap_sp : call=0
z
ap_sp(const char *s)
478{
479    if : true=0, false=0
i
f (s : modules/http/mod_mime.c line=477 column=39
s
 == : true=0, false=0
=
= NULL) {
480        return : pass=0
r
eturn (NULL);
481    }
482    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
s : modules/http/mod_mime.c line=477 column=39
s
 == : true=0, false=0
=
= '\0') {
483        return : pass=0
r
eturn (s : modules/http/mod_mime.c line=477 column=39
s
);
484    }
485
486    /* skip prefixed white space */
487    for : true=0, false=0
f
or (; * dereference : enter=0, leave=0
*
s : modules/http/mod_mime.c line=477 column=39
s
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
s : modules/http/mod_mime.c line=477 column=39
s
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
s : modules/http/mod_mime.c line=477 column=39
s
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\n'; s : modules/http/mod_mime.c line=477 column=39
s
++ : pass=0
+
+)
488        ;
489
490    return : pass=0
r
eturn (s : modules/http/mod_mime.c line=477 column=39
s
);
491}
492
493static char *zap_sp_and_dup : call=0
z
ap_sp_and_dup(apr_pool_t *p, const char *start,
494                            const char *end, apr_size_t *len)
495{
496    while : true=0, false=0
w
hile ((start : modules/http/mod_mime.c line=493 column=56
s
tart < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 end : modules/http/mod_mime.c line=494 column=41
e
nd) && : true=0, false=0
&
& apr_isspace(* dereference : enter=0, leave=0
*
start : modules/http/mod_mime.c line=493 column=56
s
tart)) {
497        start : modules/http/mod_mime.c line=493 column=56
s
tart++ : pass=0
+
+;
498    }
499    while : true=0, false=0
w
hile ((end : modules/http/mod_mime.c line=494 column=41
e
nd > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 start : modules/http/mod_mime.c line=493 column=56
s
tart) && : true=0, false=0
&
& apr_isspace(* dereference : enter=0, leave=0
*
(end : modules/http/mod_mime.c line=494 column=41
e
nd - : pass=0
-
 1))) {
500        end : modules/http/mod_mime.c line=494 column=41
e
nd-- : pass=0
-
-;
501    }
502    if : true=0, false=0
i
f (len : modules/http/mod_mime.c line=494 column=58
l
en) {
503        *len : modules/http/mod_mime.c line=494 column=58
l
en = : enter=0, leave=0
=
 end : modules/http/mod_mime.c line=494 column=41
e
nd - : pass=0
-
 start : modules/http/mod_mime.c line=493 column=56
s
tart;
504    }
505    return : pass=0
r
eturn apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(p : modules/http/mod_mime.c line=493 column=41
p
start : modules/http/mod_mime.c line=493 column=56
s
tart, end : modules/http/mod_mime.c line=494 column=41
e
nd - : pass=0
-
 start : modules/http/mod_mime.c line=493 column=56
s
tart);
506}
507
508static int is_token : call=0
i
s_token(char c)
509{
510    int res;
511
512    res : modules/http/mod_mime.c line=510 column=9
r
es = : pass=0
=
 (apr_isascii(c : modules/http/mod_mime.c line=508 column=26
c
&& : true=0, false=0
&
& apr_isgraph(c : modules/http/mod_mime.c line=508 column=26
c
)
513           && : true=0, false=0
&
& (strchr : enter=0, leave=0

strchr : /usr/include/string.h line=235 column=14
s
trchr(tspecial : modules/http/mod_mime.c line=110 column=13
t
special, c : modules/http/mod_mime.c line=508 column=26
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL)) conditional operator : true=0, false=0
?
 1 : -1;
514    return : pass=0
r
eturn res : modules/http/mod_mime.c line=510 column=9
r
es;
515}
516
517static int is_qtext : call=0
i
s_qtext(char c)
518{
519    int res;
520
521    res : modules/http/mod_mime.c line=519 column=9
r
es = : pass=0
=
 (apr_isascii(c : modules/http/mod_mime.c line=517 column=26
c
&& : true=0, false=0
&
& (c : modules/http/mod_mime.c line=517 column=26
c
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '"') && : true=0, false=0
&
& (c : modules/http/mod_mime.c line=517 column=26
c
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\\') && : true=0, false=0
&
& (c : modules/http/mod_mime.c line=517 column=26
c
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\n'))
522        conditional operator : true=0, false=0
?
 1 : -1;
523    return : pass=0
r
eturn res : modules/http/mod_mime.c line=519 column=9
r
es;
524}
525
526static int is_quoted_pair : call=0
i
s_quoted_pair(const char *s)
527{
528    int res = -1;
529    int c;
530
531    if : true=0, false=0
i
f (((s : modules/http/mod_mime.c line=526 column=39
s
 + : pass=0
+
 1) != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL) && : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
s : modules/http/mod_mime.c line=526 column=39
s
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\\')) {
532        c : modules/http/mod_mime.c line=529 column=9
c
 = : pass=0
=
 (int) * dereference : enter=0, leave=0
*
(s : modules/http/mod_mime.c line=526 column=39
s
 + : pass=0
+
 1);
533        if : true=0, false=0
i
f (apr_isascii(c : modules/http/mod_mime.c line=529 column=9
c
)) {
534            res : modules/http/mod_mime.c line=528 column=9
r
es = : pass=0
=
 1;
535        }
536    }
537    return : pass=0
r
eturn (res : modules/http/mod_mime.c line=528 column=9
r
es);
538}
539
540static content_type *analyze_ct : call=0
a
nalyze_ct(request_rec *r, const char *s)
541{
542    const char *cp, *mp;
543    char *attribute, *value;
544    int quoted = 0;
545    server_rec * ss = r : modules/http/mod_mime.c line=540 column=46
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver;
546    apr_pool_t * p = r : modules/http/mod_mime.c line=540 column=46
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool;
547
548    content_type *ctp;
549    param *pp, *npp;
550
551    /* initialize ctp */
552    ctp : modules/http/mod_mime.c line=548 column=19
c
tp = : pass=0
=
 (content_type *)apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : modules/http/mod_mime.c line=546 column=18
p
, sizeof(content_type));
553    ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>type : modules/http/mod_mime.c line=103 column=17
t
ype = : enter=0, leave=0
=
 NULL;
554    ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>subtype : modules/http/mod_mime.c line=105 column=17
s
ubtype = : enter=0, leave=0
=
 NULL;
555    ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>param : modules/http/mod_mime.c line=107 column=12
p
aram = : enter=0, leave=0
=
 NULL;
556
557    mp : modules/http/mod_mime.c line=542 column=22
m
= : pass=0
=
 s : modules/http/mod_mime.c line=540 column=61
s
;
558
559    /* getting a type */
560    cp : modules/http/mod_mime.c line=542 column=17
c
= : pass=0
=
 mp : modules/http/mod_mime.c line=542 column=22
m
p;
561    while : true=0, false=0
w
hile (apr_isspace(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p)) {
562        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
563    }
564    if : true=0, false=0
i
f (! : true=0, false=0
!
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p) {
565        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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
566                     "mod_mime: analyze_ct: cannot get media type from '%s'",
567                     (const char *) mp : modules/http/mod_mime.c line=542 column=22
m
p);
568        return : pass=0
r
eturn (NULL);
569    }
570    ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>type : modules/http/mod_mime.c line=103 column=17
t
ype = : enter=0, leave=0
=
 cp : modules/http/mod_mime.c line=542 column=17
c
p;
571    do {
572        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
573    } while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
cp : modules/http/mod_mime.c line=542 column=17
c
&& : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '/') && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
apr_isspace(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p) && : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= ';'));
574    if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
|| : true=0, false=0
|
| (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ';')) {
575        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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
576                     "Cannot get media type from '%s'",
577                     (const char *) mp : modules/http/mod_mime.c line=542 column=22
m
p);
578        return : pass=0
r
eturn (NULL);
579    }
580    while : true=0, false=0
w
hile (apr_isspace(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p)) {
581        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
582    }
583    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
!
= '/') {
584        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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
585                     "mod_mime: analyze_ct: cannot get media type from '%s'",
586                     (const char *) mp : modules/http/mod_mime.c line=542 column=22
m
p);
587        return : pass=0
r
eturn (NULL);
588    }
589    ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>type_len : modules/http/mod_mime.c line=104 column=16
t
ype_len = : enter=0, leave=0
=
 cp : modules/http/mod_mime.c line=542 column=17
c
- : pass=0
-
 ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>type : modules/http/mod_mime.c line=103 column=17
t
ype;
590
591    cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+; /* skip the '/' */
592
593    /* getting a subtype */
594    while : true=0, false=0
w
hile (apr_isspace(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p)) {
595        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
596    }
597    if : true=0, false=0
i
f (! : true=0, false=0
!
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p) {
598        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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
599                     "Cannot get media subtype.");
600        return : pass=0
r
eturn (NULL);
601    }
602    ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>subtype : modules/http/mod_mime.c line=105 column=17
s
ubtype = : enter=0, leave=0
=
 cp : modules/http/mod_mime.c line=542 column=17
c
p;
603    do {
604        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
605    } while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
cp : modules/http/mod_mime.c line=542 column=17
c
&& : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
apr_isspace(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p) && : true=0, false=0
&
& (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= ';'));
606    ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>subtype_len : modules/http/mod_mime.c line=106 column=16
s
ubtype_len = : enter=0, leave=0
=
 cp : modules/http/mod_mime.c line=542 column=17
c
- : pass=0
-
 ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>subtype : modules/http/mod_mime.c line=105 column=17
s
ubtype;
607    while : true=0, false=0
w
hile (apr_isspace(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p)) {
608        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
609    }
610
611    if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
=
= '\0') {
612        return : pass=0
r
eturn (ctp : modules/http/mod_mime.c line=548 column=19
c
tp);
613    }
614
615    /* getting parameters */
616    cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+; /* skip the ';' */
617    cp : modules/http/mod_mime.c line=542 column=17
c
= : pass=0
=
 zap_sp : enter=0, leave=0

zap_sp : modules/http/mod_mime.c line=477 column=20
z
ap_sp(cp : modules/http/mod_mime.c line=542 column=17
c
p);
618    if : true=0, false=0
i
f (cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL || : true=0, false=0
|
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\0') {
619        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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
620                     "Cannot get media parameter.");
621        return : pass=0
r
eturn (NULL);
622    }
623    mp : modules/http/mod_mime.c line=542 column=22
m
= : pass=0
=
 cp : modules/http/mod_mime.c line=542 column=17
c
p;
624    attribute : modules/http/mod_mime.c line=543 column=11
a
ttribute = : pass=0
=
 NULL;
625    value : modules/http/mod_mime.c line=543 column=23
v
alue = : pass=0
=
 NULL;
626
627    while : true=0, false=0
w
hile (cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL && : true=0, false=0
&
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\0') {
628        if : true=0, false=0
i
f (attribute : modules/http/mod_mime.c line=543 column=11
a
ttribute == : true=0, false=0
=
= NULL) {
629            if : true=0, false=0
i
f (is_token : enter=0, leave=0

is_token : modules/http/mod_mime.c line=508 column=12
i
s_token(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p) > : true=0, false=0
>
 0) {
630                cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
631                continue : pass=0
c
ontinue;
632            }
633            else if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\n') {
634                cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
635                continue : pass=0
c
ontinue;
636            }
637            else if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
=
= '=') {
638                attribute : modules/http/mod_mime.c line=543 column=11
a
ttribute = : pass=0
=
 zap_sp_and_dup : enter=0, leave=0

zap_sp_and_dup : modules/http/mod_mime.c line=493 column=14
z
ap_sp_and_dup(p : modules/http/mod_mime.c line=546 column=18
p
mp : modules/http/mod_mime.c line=542 column=22
m
p, cp : modules/http/mod_mime.c line=542 column=17
c
p, NULL);
639                if : true=0, false=0
i
f (attribute : modules/http/mod_mime.c line=543 column=11
a
ttribute == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL || : true=0, false=0
|
* dereference : enter=0, leave=0
*
attribute : modules/http/mod_mime.c line=543 column=11
a
ttribute == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\0') {
640                    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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
641                                 "Cannot get media parameter.");
642                    return : pass=0
r
eturn (NULL);
643                }
644                cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
645                cp : modules/http/mod_mime.c line=542 column=17
c
= : pass=0
=
 zap_sp : enter=0, leave=0

zap_sp : modules/http/mod_mime.c line=477 column=20
z
ap_sp(cp : modules/http/mod_mime.c line=542 column=17
c
p);
646                if : true=0, false=0
i
f (cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL || : true=0, false=0
|
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\0') {
647                    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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
648                                 "Cannot get media parameter.");
649                    return : pass=0
r
eturn (NULL);
650                }
651                mp : modules/http/mod_mime.c line=542 column=22
m
= : pass=0
=
 cp : modules/http/mod_mime.c line=542 column=17
c
p;
652                continue : pass=0
c
ontinue;
653            }
654            else {
655                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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
656                             "Cannot get media parameter.");
657                return : pass=0
r
eturn (NULL);
658            }
659        }
660        else {
661            if : true=0, false=0
i
f (mp : modules/http/mod_mime.c line=542 column=22
m
== : true=0, false=0
=
cp : modules/http/mod_mime.c line=542 column=17
c
p) {
662                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
=
= '"') {
663                    quoted : modules/http/mod_mime.c line=544 column=9
q
uoted = : pass=0
=
 1;
664                    cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
665                }
666                else {
667                    quoted : modules/http/mod_mime.c line=544 column=9
q
uoted = : pass=0
=
 0;
668                }
669            }
670            if : true=0, false=0
i
f (quoted : modules/http/mod_mime.c line=544 column=9
q
uoted > : true=0, false=0
>
 0) {
671                while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0

quoted : modules/http/mod_mime.c line=544 column=9
qTF
uoted && : true=0, false=0
&
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\0') {
672                    if : true=0, false=0
i
f (is_qtext : enter=0, leave=0

is_qtext : modules/http/mod_mime.c line=517 column=12
i
s_qtext(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p) > : true=0, false=0
>
 0) {
673                        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
674                    }
675                    else if : true=0, false=0
i
f (is_quoted_pair : enter=0, leave=0

is_quoted_pair : modules/http/mod_mime.c line=526 column=12
i
s_quoted_pair(cp : modules/http/mod_mime.c line=542 column=17
c
p) > : true=0, false=0
>
 0) {
676                        cp : modules/http/mod_mime.c line=542 column=17
c
+= : pass=0
+
= 2;
677                    }
678                    else if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
=
= '"') {
679                        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
680                        while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ' ' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\t' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\n') {
681                            cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
682                        }
683                        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= ';' && : true=0, false=0
&
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\0') {
684                            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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
685                                         "Cannot get media parameter.");
686                            return : pass=0
r
eturn(NULL);
687                        }
688                        quoted : modules/http/mod_mime.c line=544 column=9
q
uoted = : pass=0
=
 0;
689                    }
690                    else {
691                        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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
692                                     "Cannot get media parameter.");
693                        return : pass=0
r
eturn (NULL);
694                    }
695                }
696            }
697            else {
698                while : true=0, false=0
w
hile (1) {
699                    if : true=0, false=0
i
f (is_token : enter=0, leave=0

is_token : modules/http/mod_mime.c line=508 column=12
i
s_token(* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
p) > : true=0, false=0
>
 0) {
700                        cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
701                    }
702                    else if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\0' || : true=0, false=0
|
* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= ';') {
703                        break : pass=0
b
reak;
704                    }
705                    else {
706                        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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
707                                     "Cannot get media parameter.");
708                        return : pass=0
r
eturn (NULL);
709                    }
710                }
711            }
712            value : modules/http/mod_mime.c line=543 column=23
v
alue = : pass=0
=
 zap_sp_and_dup : enter=0, leave=0

zap_sp_and_dup : modules/http/mod_mime.c line=493 column=14
z
ap_sp_and_dup(p : modules/http/mod_mime.c line=546 column=18
p
mp : modules/http/mod_mime.c line=542 column=22
m
p, cp : modules/http/mod_mime.c line=542 column=17
c
p, NULL);
713            if : true=0, false=0
i
f (value : modules/http/mod_mime.c line=543 column=23
v
alue == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL || : true=0, false=0
|
* dereference : enter=0, leave=0
*
value : modules/http/mod_mime.c line=543 column=23
v
alue == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\0') {
714                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, ss : modules/http/mod_mime.c line=545 column=18
s
s,
715                             "Cannot get media parameter.");
716                return : pass=0
r
eturn (NULL);
717            }
718
719            pp : modules/http/mod_mime.c line=549 column=12
p
= : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : modules/http/mod_mime.c line=546 column=18
p
, sizeof(param));
720            pp : modules/http/mod_mime.c line=549 column=12
p
p-> : enter=0, leave=0
-
>attr : modules/http/mod_mime.c line=97 column=11
a
ttr = : enter=0, leave=0
=
 attribute : modules/http/mod_mime.c line=543 column=11
a
ttribute;
721            pp : modules/http/mod_mime.c line=549 column=12
p
p-> : enter=0, leave=0
-
>val : modules/http/mod_mime.c line=98 column=11
v
al = : enter=0, leave=0
=
 value : modules/http/mod_mime.c line=543 column=23
v
alue;
722            pp : modules/http/mod_mime.c line=549 column=12
p
p-> : enter=0, leave=0
-
>next : modules/http/mod_mime.c line=99 column=21
n
ext = : enter=0, leave=0
=
 NULL;
723
724            if : true=0, false=0
i
f (ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>param : modules/http/mod_mime.c line=107 column=12
p
aram == : true=0, false=0
=
= NULL) {
725                ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>param : modules/http/mod_mime.c line=107 column=12
p
aram = : enter=0, leave=0
=
 pp : modules/http/mod_mime.c line=549 column=12
p
p;
726            }
727            else {
728                npp : modules/http/mod_mime.c line=549 column=17
n
pp = : pass=0
=
 ctp : modules/http/mod_mime.c line=548 column=19
c
tp-> : enter=0, leave=0
-
>param : modules/http/mod_mime.c line=107 column=12
p
aram;
729                while : true=0, false=0
w
hile (npp : modules/http/mod_mime.c line=549 column=17
n
pp-> : enter=0, leave=0
-
>next : modules/http/mod_mime.c line=99 column=21
n
ext) {
730                    npp : modules/http/mod_mime.c line=549 column=17
n
pp = : pass=0
=
 npp : modules/http/mod_mime.c line=549 column=17
n
pp-> : enter=0, leave=0
-
>next : modules/http/mod_mime.c line=99 column=21
n
ext;
731                }
732                npp : modules/http/mod_mime.c line=549 column=17
n
pp-> : enter=0, leave=0
-
>next : modules/http/mod_mime.c line=99 column=21
n
ext = : enter=0, leave=0
=
 pp : modules/http/mod_mime.c line=549 column=12
p
p;
733            }
734            quoted : modules/http/mod_mime.c line=544 column=9
q
uoted = : pass=0
=
 0;
735            attribute : modules/http/mod_mime.c line=543 column=11
a
ttribute = : pass=0
=
 NULL;
736            value : modules/http/mod_mime.c line=543 column=23
v
alue = : pass=0
=
 NULL;
737            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
cp : modules/http/mod_mime.c line=542 column=17
c
== : true=0, false=0
=
= '\0') {
738                break : pass=0
b
reak;
739            }
740            cp : modules/http/mod_mime.c line=542 column=17
c
p++ : pass=0
+
+;
741            mp : modules/http/mod_mime.c line=542 column=22
m
= : pass=0
=
 cp : modules/http/mod_mime.c line=542 column=17
c
p;
742        }
743    }
744    return : pass=0
r
eturn (ctp : modules/http/mod_mime.c line=548 column=19
c
tp);
745}
746
747/*
748 * find_ct is the hook routine for determining content-type and other
749 * MIME-related metadata.  It assumes that r->filename has already been
750 * set and stat has been called for r->finfo.  It also assumes that the
751 * non-path base file name is not the empty string unless it is a dir.
752 */
753static int find_ct : call=0
f
ind_ct(request_rec *r)
754{
755    mime_dir_config *conf;
756    apr_array_header_t *exception_list;
757    char *ext;
758    const char *fn, *type, *charset = NULL, *resource_name;
759    int found_metadata = 0;
760
761    if : true=0, false=0
i
f (r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.filetype : /usr/include/apr-1/apr_file_info.h line=186 column=20 filetype == : true=0, false=0
=
APR_DIR : /usr/include/apr-1/apr_file_info.h line=65 column=5 APR_DIR) {
762        ap_set_content_type : enter=0, leave=0

ap_set_content_type : include/http_protocol.h line=310 column=18
a
p_set_content_type(r : modules/http/mod_mime.c line=753 column=33
r
, DIR_MAGIC_TYPE);
763        return : pass=0
r
eturn OK;
764    }
765
766    if : true=0, false=0
i
f (! : true=0, false=0
!
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename) {
767        return : pass=0
r
eturn DECLINED;
768    }
769
770    conf : modules/http/mod_mime.c line=755 column=22
c
onf = : pass=0
=
 (mime_dir_config *)ap_get_module_config(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config,
771                                                   &mime_module : modules/http/mod_mime.c line=116 column=31
m
ime_module);
772    exception_list : modules/http/mod_mime.c line=756 column=25
e
xception_list = : pass=0
=
 apr_array_make : enter=0, leave=0

apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
a
pr_array_make(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 2, sizeof(char *));
773
774    /* If use_path_info is explicitly set to on (value & 1 == 1), append. */
775    if : true=0, false=0
i
f (conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>use_path_info : modules/http/mod_mime.c line=88 column=9
u
se_path_info & : pass=0
&
 1) {
776        resource_name : modules/http/mod_mime.c line=758 column=46
r
esource_name = : 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/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename, r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>path_info : include/httpd.h line=953 column=11
p
ath_info, NULL);
777    }
778    else {
779        resource_name : modules/http/mod_mime.c line=758 column=46
r
esource_name = : pass=0
=
 r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename;
780    }
781
782    /* Always drop the path leading up to the file name.
783     */
784    if : true=0, false=0
i
f ((fn : modules/http/mod_mime.c line=758 column=17
f
= : pass=0
=
 ap_strrchr_c(resource_name : modules/http/mod_mime.c line=758 column=46
r
esource_name, '/')) == : true=0, false=0
=
= NULL) {
785        fn : modules/http/mod_mime.c line=758 column=17
f
= : pass=0
=
 resource_name : modules/http/mod_mime.c line=758 column=46
r
esource_name;
786    }
787    else {
788        ++ : pass=0
+
+fn : modules/http/mod_mime.c line=758 column=17
f
n;
789    }
790
791    /* The exception list keeps track of those filename components that
792     * are not associated with extensions indicating metadata.
793     * The base name is always the first exception (i.e., "txt.html" has
794     * a basename of "txt" even though it might look like an extension).
795     */
796    ext : modules/http/mod_mime.c line=757 column=11
e
xt = : pass=0
=
 ap_getword : enter=0, leave=0

ap_getword : include/httpd.h line=1299 column=20
a
p_getword(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &fn : modules/http/mod_mime.c line=758 column=17
f
n, '.');
797    *((const char **)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(exception_list : modules/http/mod_mime.c line=756 column=25
e
xception_list)) = : enter=0, leave=0
=
 ext : modules/http/mod_mime.c line=757 column=11
e
xt;
798
799    /* Parse filename extensions which can be in any order
800     */
801    while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
fn : modules/http/mod_mime.c line=758 column=17
f
&& : true=0, false=0
&
& (ext : modules/http/mod_mime.c line=757 column=11
e
xt = : pass=0
MC/DC independently affect : true=0, false=0
=TF
 ap_getword : enter=0, leave=0

ap_getword : include/httpd.h line=1299 column=20
a
p_getword(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &fn : modules/http/mod_mime.c line=758 column=17
f
n, '.'))) {
802        const extension_info *exinfo = NULL;
803        int found;
804
805        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
ext : modules/http/mod_mime.c line=757 column=11
e
xt == : true=0, false=0
=
= '\0') {  /* ignore empty extensions "bad..html" */
806            continue : pass=0
c
ontinue;
807        }
808
809        found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 0;
810
811        ap_str_tolower : enter=0, leave=0

ap_str_tolower : include/httpd.h line=1739 column=18
a
p_str_tolower(ext : modules/http/mod_mime.c line=757 column=11
e
xt);
812
813        if : true=0, false=0
i
f (conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings != : true=0, false=0
!
= NULL) {
814            exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo = : pass=0
=
 (extension_info*)apr_hash_get : enter=0, leave=0

apr_hash_get : /usr/include/apr-1/apr_hash.h line=117 column=21
a
pr_hash_get(conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>extension_mappings : modules/http/mod_mime.c line=78 column=17
e
xtension_mappings,
815                                                   ext : modules/http/mod_mime.c line=757 column=11
e
xt, APR_HASH_KEY_STRING);
816        }
817
818        if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type) {
819            if : true=0, false=0
i
f ((type : modules/http/mod_mime.c line=758 column=22
t
ype = : pass=0
=
 apr_hash_get : enter=0, leave=0

apr_hash_get : /usr/include/apr-1/apr_hash.h line=117 column=21
a
pr_hash_get(mime_type_extensions : modules/http/mod_mime.c line=427 column=20
m
ime_type_extensions, ext : modules/http/mod_mime.c line=757 column=11
e
xt,
820                                     APR_HASH_KEY_STRING)) != : true=0, false=0
!
= NULL) {
821                ap_set_content_type : enter=0, leave=0

ap_set_content_type : include/http_protocol.h line=310 column=18
a
p_set_content_type(r : modules/http/mod_mime.c line=753 column=33
r
, (char*) type : modules/http/mod_mime.c line=758 column=22
t
ype);
822                found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
823            }
824        }
825
826        if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo != : true=0, false=0
!
= NULL) {
827
828            /* empty string is treated as special case for RemoveType */
829            if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfoMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type && : true=0, false=0
&
MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type) {
830                ap_set_content_type : enter=0, leave=0

ap_set_content_type : include/http_protocol.h line=310 column=18
a
p_set_content_type(r : modules/http/mod_mime.c line=753 column=33
r
exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>forced_type : modules/http/mod_mime.c line=62 column=11
f
orced_type);
831                found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
832            }
833
834            if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>charset_type : modules/http/mod_mime.c line=66 column=11
c
harset_type) {
835                charset : modules/http/mod_mime.c line=758 column=29
c
harset = : pass=0
=
 exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>charset_type : modules/http/mod_mime.c line=66 column=11
c
harset_type;
836                found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
837            }
838            if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>language_type : modules/http/mod_mime.c line=64 column=11
l
anguage_type) {
839                if : true=0, false=0
i
f (! : true=0, false=0
!
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_languages : include/httpd.h line=924 column=25
c
ontent_languages) {
840                    r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_languages : include/httpd.h line=924 column=25
c
ontent_languages = : enter=0, leave=0
=
 apr_array_make : enter=0, leave=0

apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
a
pr_array_make(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 2,
841                                                          sizeof(char *));
842                }
843                *((const char **)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(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_languages : include/httpd.h line=924 column=25
c
ontent_languages))
844                    = : enter=0, leave=0
=
 exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>language_type : modules/http/mod_mime.c line=64 column=11
l
anguage_type;
845                found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
846            }
847            if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type) {
848                if : true=0, false=0
i
f (! : true=0, false=0
!
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_encoding : include/httpd.h line=922 column=17
c
ontent_encoding) {
849                    r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_encoding : include/httpd.h line=922 column=17
c
ontent_encoding = : enter=0, leave=0
=
 exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type;
850                }
851                else {
852                    /* XXX should eliminate duplicate entities
853                     *
854                     * ah no. Order is important and double encoding is neither
855                     * forbidden nor impossible. -- nd
856                     */
857                    r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_encoding : include/httpd.h line=922 column=17
c
ontent_encoding = : enter=0, leave=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/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool,
858                                                      r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_encoding : include/httpd.h line=922 column=17
c
ontent_encoding,
859                                                      ", ",
860                                                      exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>encoding_type : modules/http/mod_mime.c line=63 column=11
e
ncoding_type,
861                                                      NULL);
862                }
863                found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
864            }
865            /* The following extensions are not 'Found'.  That is, they don't
866             * make any contribution to metadata negotation, so they must have
867             * been explicitly requested by name.
868             */
869            if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfoMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>handler : modules/http/mod_mime.c line=65 column=11
h
andler && : true=0, false=0
&
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>proxyreq : include/httpd.h line=806 column=9
p
roxyreq == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= PROXYREQ_NONE) {
870                r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>handler : include/httpd.h line=919 column=17
h
andler = : enter=0, leave=0
=
 exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>handler : modules/http/mod_mime.c line=65 column=11
h
andler;
871                if : true=0, false=0
i
f (conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 MULTIMATCH_HANDLERS) {
872                    found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
873                }
874            }
875            /* XXX Two significant problems; 1, we don't check to see if we are
876             * setting redundant filters.    2, we insert these in the types config
877             * hook, which may be too early (dunno.)
878             */
879            if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfoMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>input_filters : modules/http/mod_mime.c line=67 column=11
i
nput_filters && : true=0, false=0
&
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>proxyreq : include/httpd.h line=806 column=9
p
roxyreq == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= PROXYREQ_NONE) {
880                const char *filter, *filters = exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>input_filters : modules/http/mod_mime.c line=67 column=11
i
nput_filters;
881                while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
filters : modules/http/mod_mime.c line=880 column=38
f
ilters
882                    && : true=0, false=0
&
& (filter : modules/http/mod_mime.c line=880 column=29
f
ilter = : pass=0
MC/DC independently affect : true=0, false=0
=TF
 ap_getword : enter=0, leave=0

ap_getword : include/httpd.h line=1299 column=20
a
p_getword(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &filters : modules/http/mod_mime.c line=880 column=38
f
ilters, ';'))) {
883                    ap_add_input_filter : enter=0, leave=0

ap_add_input_filter : include/util_filter.h line=400 column=27
a
p_add_input_filter(filter : modules/http/mod_mime.c line=880 column=29
f
ilter, NULL, r : modules/http/mod_mime.c line=753 column=33
r
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection);
884                }
885                if : true=0, false=0
i
f (conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 MULTIMATCH_FILTERS) {
886                    found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
887                }
888            }
889            if : true=0, false=0
i
f (exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfoMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>output_filters : modules/http/mod_mime.c line=68 column=11
o
utput_filters && : true=0, false=0
&
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>proxyreq : include/httpd.h line=806 column=9
p
roxyreq == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= PROXYREQ_NONE) {
890                const char *filter, *filters = exinfo : modules/http/mod_mime.c line=802 column=31
e
xinfo-> : enter=0, leave=0
-
>output_filters : modules/http/mod_mime.c line=68 column=11
o
utput_filters;
891                while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
filters : modules/http/mod_mime.c line=890 column=38
f
ilters
892                    && : true=0, false=0
&
& (filter : modules/http/mod_mime.c line=890 column=29
f
ilter = : pass=0
MC/DC independently affect : true=0, false=0
=TF
 ap_getword : enter=0, leave=0

ap_getword : include/httpd.h line=1299 column=20
a
p_getword(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, &filters : modules/http/mod_mime.c line=890 column=38
f
ilters, ';'))) {
893                    ap_add_output_filter : enter=0, leave=0

ap_add_output_filter : include/util_filter.h line=432 column=27
a
p_add_output_filter(filter : modules/http/mod_mime.c line=890 column=29
f
ilter, NULL, r : modules/http/mod_mime.c line=753 column=33
r
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection);
894                }
895                if : true=0, false=0
i
f (conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 MULTIMATCH_FILTERS) {
896                    found : modules/http/mod_mime.c line=803 column=13
f
ound = : pass=0
=
 1;
897                }
898            }
899        }
900
901        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

found : modules/http/mod_mime.c line=803 column=13
fTF
ound || : true=0, false=0
|
| (conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>multimatch : modules/http/mod_mime.c line=85 column=9
m
ultimatch & : pass=0
&
 MULTIMATCH_ANY)) {
902            found_metadata : modules/http/mod_mime.c line=759 column=9
f
ound_metadata = : pass=0
=
 1;
903        }
904        else {
905            *((const char **) 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(exception_list : modules/http/mod_mime.c line=756 column=25
e
xception_list)) = : enter=0, leave=0
=
 ext : modules/http/mod_mime.c line=757 column=11
e
xt;
906        }
907    }
908
909    /*
910     * Need to set a notes entry on r for unrecognized elements.
911     * Somebody better claim them!  If we did absolutely nothing,
912     * skip the notes to alert mod_negotiation we are clueless.
913     */
914    if : true=0, false=0
i
f (found_metadata : modules/http/mod_mime.c line=759 column=9
f
ound_metadata) {
915        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/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "ap-mime-exceptions-list",
916                       (void *)exception_list : modules/http/mod_mime.c line=756 column=25
e
xception_list);
917    }
918
919    if : true=0, false=0
i
f (r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type) {
920        content_type *ctp;
921        int override = 0;
922
923        if : true=0, false=0
i
f ((ctp : modules/http/mod_mime.c line=920 column=23
c
tp = : pass=0
=
 analyze_ct : enter=0, leave=0

analyze_ct : modules/http/mod_mime.c line=540 column=22
a
nalyze_ct(r : modules/http/mod_mime.c line=753 column=33
r
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type))) {
924            param *pp = ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>param : modules/http/mod_mime.c line=107 column=12
p
aram;
925            char *base_content_type = apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>type_len : modules/http/mod_mime.c line=104 column=16
t
ype_len + : pass=0
+
926                                                 ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>subtype_len : modules/http/mod_mime.c line=106 column=16
s
ubtype_len + : pass=0
+
927                                                 sizeof("/"));
928            char *tmp = base_content_type : modules/http/mod_mime.c line=925 column=19
b
ase_content_type;
929            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(tmp : modules/http/mod_mime.c line=928 column=19
t
mp, ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>type : modules/http/mod_mime.c line=103 column=17
t
ype, ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>type_len : modules/http/mod_mime.c line=104 column=16
t
ype_len);
930            tmp : modules/http/mod_mime.c line=928 column=19
t
mp += : pass=0
+
ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>type_len : modules/http/mod_mime.c line=104 column=16
t
ype_len;
931            *tmp : modules/http/mod_mime.c line=928 column=19
t
mp++ : pass=0
+
= : enter=0, leave=0
=
 '/';
932            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(tmp : modules/http/mod_mime.c line=928 column=19
t
mp, ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>subtype : modules/http/mod_mime.c line=105 column=17
s
ubtype, ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>subtype_len : modules/http/mod_mime.c line=106 column=16
s
ubtype_len);
933            tmp : modules/http/mod_mime.c line=928 column=19
t
mp += : pass=0
+
ctp : modules/http/mod_mime.c line=920 column=23
c
tp-> : enter=0, leave=0
-
>subtype_len : modules/http/mod_mime.c line=106 column=16
s
ubtype_len;
934            *tmp : modules/http/mod_mime.c line=928 column=19
t
mp = : enter=0, leave=0
=
 0;
935            ap_set_content_type : enter=0, leave=0

ap_set_content_type : include/http_protocol.h line=310 column=18
a
p_set_content_type(r : modules/http/mod_mime.c line=753 column=33
r
base_content_type : modules/http/mod_mime.c line=925 column=19
b
ase_content_type);
936            while : true=0, false=0
w
hile (pp : modules/http/mod_mime.c line=924 column=20
p
!= : true=0, false=0
!
= NULL) {
937                if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

charset : modules/http/mod_mime.c line=758 column=29
cTF
harset && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(pp : modules/http/mod_mime.c line=924 column=20
p
p-> : enter=0, leave=0
-
>attr : modules/http/mod_mime.c line=97 column=11
a
ttr, "charset")) {
938                    if : true=0, false=0
i
f (! : true=0, false=0
!
override : modules/http/mod_mime.c line=921 column=13
o
verride) {
939                        ap_set_content_type : enter=0, leave=0

ap_set_content_type : include/http_protocol.h line=310 column=18
a
p_set_content_type(r : modules/http/mod_mime.c line=753 column=33
r
,
940                                            apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool,
941                                                        r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type,
942                                                        "; charset=",
943                                                        charset : modules/http/mod_mime.c line=758 column=29
c
harset,
944                                                        NULL));
945                        override : modules/http/mod_mime.c line=921 column=13
o
verride = : pass=0
=
 1;
946                    }
947                }
948                else {
949                    ap_set_content_type : enter=0, leave=0

ap_set_content_type : include/http_protocol.h line=310 column=18
a
p_set_content_type(r : modules/http/mod_mime.c line=753 column=33
r
,
950                                        apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool,
951                                                    r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type,
952                                                    "; ", pp : modules/http/mod_mime.c line=924 column=20
p
p-> : enter=0, leave=0
-
>attr : modules/http/mod_mime.c line=97 column=11
a
ttr,
953                                                    "=", pp : modules/http/mod_mime.c line=924 column=20
p
p-> : enter=0, leave=0
-
>val : modules/http/mod_mime.c line=98 column=11
v
al,
954                                                    NULL));
955                }
956                pp : modules/http/mod_mime.c line=924 column=20
p
= : pass=0
=
 pp : modules/http/mod_mime.c line=924 column=20
p
p-> : enter=0, leave=0
-
>next : modules/http/mod_mime.c line=99 column=21
n
ext;
957            }
958            if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

charset : modules/http/mod_mime.c line=758 column=29
cTF
harset && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
override : modules/http/mod_mime.c line=921 column=13
o
verride) {
959                ap_set_content_type : enter=0, leave=0

ap_set_content_type : include/http_protocol.h line=310 column=18
a
p_set_content_type(r : modules/http/mod_mime.c line=753 column=33
r
apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type,
960                                                   "; charset=", charset : modules/http/mod_mime.c line=758 column=29
c
harset,
961                                                   NULL));
962            }
963        }
964    }
965
966    /* Set default language, if none was specified by the extensions
967     * and we have a DefaultLanguage setting in force
968     */
969
970    if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_languages : include/httpd.h line=924 column=25
c
ontent_languages && : true=0, false=0
&
conf : modules/http/mod_mime.c line=755 column=22
c
onfMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language) {
971        const char **new;
972
973        if : true=0, false=0
i
f (! : true=0, false=0
!
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_languages : include/httpd.h line=924 column=25
c
ontent_languages) {
974            r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_languages : include/httpd.h line=924 column=25
c
ontent_languages = : enter=0, leave=0
=
 apr_array_make : enter=0, leave=0

apr_array_make : /usr/include/apr-1/apr_tables.h line=111 column=35
a
pr_array_make(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, 2, sizeof(char *));
975        }
976        new : modules/http/mod_mime.c line=971 column=22
n
ew = : pass=0
=
 (const char **)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(r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_languages : include/httpd.h line=924 column=25
c
ontent_languages);
977        *new : modules/http/mod_mime.c line=971 column=22
n
ew = : enter=0, leave=0
=
 conf : modules/http/mod_mime.c line=755 column=22
c
onf-> : enter=0, leave=0
-
>default_language : modules/http/mod_mime.c line=83 column=11
d
efault_language;
978    }
979
980    if : true=0, false=0
i
f (! : true=0, false=0
!
r : modules/http/mod_mime.c line=753 column=33
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type) {
981        return : pass=0
r
eturn DECLINED;
982    }
983
984    return : pass=0
r
eturn OK;
985}
986
987static void register_hooks : call=1
r
egister_hooks(apr_pool_t *p)
988{
989    ap_hook_post_config : enter=1, leave=1

ap_hook_post_config : modules/http/ line=205 column=1
a
p_hook_post_config(mime_post_config : modules/http/mod_mime.c line=429 column=12
m
ime_post_config,NULL,NULL,APR_HOOK_MIDDLE);
990    ap_hook_type_checker : enter=1, leave=1

ap_hook_type_checker : modules/http/ line=228 column=1
a
p_hook_type_checker(find_ct : modules/http/mod_mime.c line=753 column=12
f
ind_ct,NULL,NULL,APR_HOOK_MIDDLE);
991    /*
992     * this hook seems redundant ... is there any reason a type checker isn't
993     * allowed to do this already?  I'd think that fixups in general would be
994     * the last opportunity to get the filters right.
995     * ap_hook_insert_filter(mime_insert_filters,NULL,NULL,APR_HOOK_MIDDLE);
996     */
997}
998
999module AP_MODULE_DECLARE_DATA mime_module = {
1000    STANDARD20_MODULE_STUFF,
1001    create_mime_dir_config : modules/http/mod_mime.c line=118 column=14
c
reate_mime_dir_config,     /* create per-directory config structure */
1002    merge_mime_dir_configs : modules/http/mod_mime.c line=194 column=14
m
erge_mime_dir_configs,     /* merge per-directory config structures */
1003    NULL,                       /* create per-server config structure */
1004    NULL,                       /* merge per-server config structures */
1005    mime_cmds : modules/http/mod_mime.c line=367 column=26
m
ime_cmds,                  /* command apr_table_t */
1006    register_hooks : modules/http/mod_mime.c line=987 column=13
r
egister_hooks              /* register hooks */
1007};
1008[EOF]


Generated by expcov