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

 Index  Statistics  Last 
Directory./modules/filters
Filenamemod_include.c
ModifiedSun Feb 28 03:35:18 2010

Pass Half Fail Excluded Total
Function
3
6.82%
41
93.18%
0
0.00%
44
100%
Expressions
17
0.82%
2046
99.18%
0
0.00%
2063
100%
Conditions
0
0.00%
0
0.00%
449
100.00%
0
0.00%
449
100%
MC/DC
0
0.00%
166
100.00%
0
0.00%
166
100%
Branches

if
0
0.00%
0
0.00%
290
100.00%
0
0.00%
290
100%
for
0
0.00%
0
0.00%
13
100.00%
0
0.00%
13
100%
while
0
0.00%
0
0.00%
40
100.00%
0
0.00%
40
100%
case
0
0.00%
0
0.00%
134
100.00%
0
0.00%
134
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#include "apr.h"
18#include "apr_strings.h"
19#include "apr_thread_proc.h"
20#include "apr_hash.h"
21#include "apr_user.h"
22#include "apr_lib.h"
23#include "apr_optional.h"
24
25#define APR_WANT_STRFUNC
26#define APR_WANT_MEMFUNC
27#include "apr_want.h"
28
29#include "ap_config.h"
30#include "util_filter.h"
31#include "httpd.h"
32#include "http_config.h"
33#include "http_core.h"
34#include "http_request.h"
35#include "http_core.h"
36#include "http_protocol.h"
37#include "http_log.h"
38#include "http_main.h"
39#include "util_script.h"
40#include "http_core.h"
41#include "mod_include.h"
42
43/* helper for Latin1 <-> entity encoding */
44#if APR_CHARSET_EBCDIC
45#include "util_ebcdic.h"
46#define RAW_ASCII_CHAR(ch)  apr_xlate_conv_byte(ap_hdrs_from_ascii, \
47                                                (unsigned char)ch)
48#else /* APR_CHARSET_EBCDIC */
49#define RAW_ASCII_CHAR(ch)  (ch)
50#endif /* !APR_CHARSET_EBCDIC */
51
52
53/*
54 * +-------------------------------------------------------+
55 * |                                                       |
56 * |                 Types and Structures
57 * |                                                       |
58 * +-------------------------------------------------------+
59 */
60
61/* sll used for string expansion */
62typedef struct result_item {
63    struct result_item *next;
64    apr_size_t len;
65    const char *string;
66} result_item_t;
67
68/* conditional expression parser stuff */
69typedef enum {
70    TOKEN_STRING,
71    TOKEN_RE,
72    TOKEN_AND,
73    TOKEN_OR,
74    TOKEN_NOT,
75    TOKEN_EQ,
76    TOKEN_NE,
77    TOKEN_RBRACE,
78    TOKEN_LBRACE,
79    TOKEN_GROUP,
80    TOKEN_GE,
81    TOKEN_LE,
82    TOKEN_GT,
83    TOKEN_LT,
84    TOKEN_ACCESS
85} token_type_t;
86
87typedef struct {
88    token_type_t  type;
89    const char   *value;
90#ifdef DEBUG_INCLUDE
91    const char   *s;
92#endif
93} token_t;
94
95typedef struct parse_node {
96    struct parse_node *parent;
97    struct parse_node *left;
98    struct parse_node *right;
99    token_t token;
100    int value;
101    int done;
102#ifdef DEBUG_INCLUDE
103    int dump_done;
104#endif
105} parse_node_t;
106
107typedef enum {
108    XBITHACK_OFF,
109    XBITHACK_ON,
110    XBITHACK_FULL
111} xbithack_t;
112
113typedef struct {
114    const char *default_error_msg;
115    const char *default_time_fmt;
116    const char *undefined_echo;
117    xbithack_t  xbithack;
118    int accessenable;
119    int lastmodified;
120    int etag;
121} include_dir_config;
122
123typedef struct {
124    const char *default_start_tag;
125    const char *default_end_tag;
126} include_server_config;
127
128/* main parser states */
129typedef enum {
130    PARSE_PRE_HEAD,
131    PARSE_HEAD,
132    PARSE_DIRECTIVE,
133    PARSE_DIRECTIVE_POSTNAME,
134    PARSE_DIRECTIVE_TAIL,
135    PARSE_DIRECTIVE_POSTTAIL,
136    PARSE_PRE_ARG,
137    PARSE_ARG,
138    PARSE_ARG_NAME,
139    PARSE_ARG_POSTNAME,
140    PARSE_ARG_EQ,
141    PARSE_ARG_PREVAL,
142    PARSE_ARG_VAL,
143    PARSE_ARG_VAL_ESC,
144    PARSE_ARG_POSTVAL,
145    PARSE_TAIL,
146    PARSE_TAIL_SEQ,
147    PARSE_EXECUTE
148} parse_state_t;
149
150typedef struct arg_item {
151    struct arg_item  *next;
152    char             *name;
153    apr_size_t        name_len;
154    char             *value;
155    apr_size_t        value_len;
156} arg_item_t;
157
158typedef struct {
159    const char *source;
160    const char *rexp;
161    apr_size_t  nsub;
162    ap_regmatch_t match[AP_MAX_REG_MATCH];
163    int         have_match;
164} backref_t;
165
166typedef struct {
167    unsigned int T[256];
168    unsigned int x;
169    apr_size_t pattern_len;
170} bndm_t;
171
172struct ssi_internal_ctx {
173    parse_state_t state;
174    int           seen_eos;
175    int           error;
176    char          quote;         /* quote character value (or \0) */
177    apr_size_t    parse_pos;     /* parse position of partial matches */
178    apr_size_t    bytes_read;
179
180    apr_bucket_brigade *tmp_bb;
181
182    request_rec  *r;
183    const char   *start_seq;
184    bndm_t       *start_seq_pat;
185    const char   *end_seq;
186    apr_size_t    end_seq_len;
187    char         *directive;     /* name of the current directive */
188    apr_size_t    directive_len; /* length of the current directive name */
189
190    arg_item_t   *current_arg;   /* currently parsed argument */
191    arg_item_t   *argv;          /* all arguments */
192
193    backref_t    *re;            /* NULL if there wasn't a regex yet */
194
195    const char   *undefined_echo;
196    apr_size_t    undefined_echo_len;
197
198    int         accessenable;    /* is using the access tests allowed? */
199
200#ifdef DEBUG_INCLUDE
201    struct {
202        ap_filter_t *f;
203        apr_bucket_brigade *bb;
204    } debug;
205#endif
206};
207
208
209/*
210 * +-------------------------------------------------------+
211 * |                                                       |
212 * |                  Debugging Utilities
213 * |                                                       |
214 * +-------------------------------------------------------+
215 */
216
217#ifdef DEBUG_INCLUDE
218
219#define TYPE_TOKEN(token, ttype) do { \
220    (token)->type = ttype;            \
221    (token)->s = #ttype;              \
222} while(0)
223
224#define CREATE_NODE(ctx, name) do {                       \
225    (name) = apr_palloc((ctx)->dpool, sizeof(*(name)));   \
226    (name)->parent = (name)->left = (name)->right = NULL; \
227    (name)->done = 0;                                     \
228    (name)->dump_done = 0;                                \
229} while(0)
230
231static void debug_printf(include_ctx_t *ctx, const char *fmt, ...)
232{
233    va_list ap;
234    char *debug__str;
235
236    va_start(ap, fmt);
237    debug__str = apr_pvsprintf(ctx->pool, fmt, ap);
238    va_end(ap);
239
240    APR_BRIGADE_INSERT_TAIL(ctx->intern->debug.bb, apr_bucket_pool_create(
241                            debug__str, strlen(debug__str), ctx->pool,
242                            ctx->intern->debug.f->c->bucket_alloc));
243}
244
245#define DUMP__CHILD(ctx, is, node, child) if (1) {                           \
246    parse_node_t *d__c = node->child;                                        \
247    if (d__c) {                                                              \
248        if (!d__c->dump_done) {                                              \
249            if (d__c->parent != node) {                                      \
250                debug_printf(ctx, "!!! Parse tree is not consistent !!!\n"); \
251                if (!d__c->parent) {                                         \
252                    debug_printf(ctx, "Parent of " #child " child node is "  \
253                                 "NULL.\n");                                 \
254                }                                                            \
255                else {                                                       \
256                    debug_printf(ctx, "Parent of " #child " child node "     \
257                                 "points to another node (of type %s)!\n",   \
258                                 d__c->parent->token.s);                     \
259                }                                                            \
260                return;                                                      \
261            }                                                                \
262            node = d__c;                                                     \
263            continue;                                                        \
264        }                                                                    \
265    }                                                                        \
266    else {                                                                   \
267        debug_printf(ctx, "%s(missing)\n", is);                              \
268    }                                                                        \
269}
270
271static void debug_dump_tree(include_ctx_t *ctx, parse_node_t *root)
272{
273    parse_node_t *current;
274    char *is;
275
276    if (!root) {
277        debug_printf(ctx, "     -- Parse Tree empty --\n\n");
278        return;
279    }
280
281    debug_printf(ctx, "     ----- Parse Tree -----\n");
282    current = root;
283    is = "     ";
284
285    while (current) {
286        switch (current->token.type) {
287        case TOKEN_STRING:
288        case TOKEN_RE:
289            debug_printf(ctx, "%s%s (%s)\n", is, current->token.s,
290                         current->token.value);
291            current->dump_done = 1;
292            current = current->parent;
293            continue;
294
295        case TOKEN_NOT:
296        case TOKEN_GROUP:
297        case TOKEN_RBRACE:
298        case TOKEN_LBRACE:
299            if (!current->dump_done) {
300                debug_printf(ctx, "%s%s\n", is, current->token.s);
301                is = apr_pstrcat(ctx->dpool, is, "    ", NULL);
302                current->dump_done = 1;
303            }
304
305            DUMP__CHILD(ctx, is, current, right)
306
307            if (!current->right || current->right->dump_done) {
308                is = apr_pstrmemdup(ctx->dpool, is, strlen(is) - 4);
309                if (current->right) current->right->dump_done = 0;
310                current = current->parent;
311            }
312            continue;
313
314        default:
315            if (!current->dump_done) {
316                debug_printf(ctx, "%s%s\n", is, current->token.s);
317                is = apr_pstrcat(ctx->dpool, is, "    ", NULL);
318                current->dump_done = 1;
319            }
320
321            DUMP__CHILD(ctx, is, current, left)
322            DUMP__CHILD(ctx, is, current, right)
323
324            if ((!current->left || current->left->dump_done) &&
325                (!current->right || current->right->dump_done)) {
326
327                is = apr_pstrmemdup(ctx->dpool, is, strlen(is) - 4);
328                if (current->left) current->left->dump_done = 0;
329                if (current->right) current->right->dump_done = 0;
330                current = current->parent;
331            }
332            continue;
333        }
334    }
335
336    /* it is possible to call this function within the parser loop, to see
337     * how the tree is built. That way, we must cleanup after us to dump
338     * always the whole tree
339     */
340    root->dump_done = 0;
341    if (root->left) root->left->dump_done = 0;
342    if (root->right) root->right->dump_done = 0;
343
344    debug_printf(ctx, "     --- End Parse Tree ---\n\n");
345
346    return;
347}
348
349#define DEBUG_INIT(ctx, filter, brigade) do { \
350    (ctx)->intern->debug.f = filter;          \
351    (ctx)->intern->debug.bb = brigade;        \
352} while(0)
353
354#define DEBUG_PRINTF(arg) debug_printf arg
355
356#define DEBUG_DUMP_TOKEN(ctx, token) do {                                     \
357    token_t *d__t = (token);                                                  \
358                                                                              \
359    if (d__t->type == TOKEN_STRING || d__t->type == TOKEN_RE) {               \
360        DEBUG_PRINTF(((ctx), "     Found: %s (%s)\n", d__t->s, d__t->value)); \
361    }                                                                         \
362    else {                                                                    \
363        DEBUG_PRINTF((ctx, "     Found: %s\n", d__t->s));                     \
364    }                                                                         \
365} while(0)
366
367#define DEBUG_DUMP_EVAL(ctx, node) do {                                       \
368    char c = '"';                                                             \
369    switch ((node)->token.type) {                                             \
370    case TOKEN_STRING:                                                        \
371        debug_printf((ctx), "     Evaluate: %s (%s) -> %c\n", (node)->token.s,\
372                     (node)->token.value, ((node)->value) ? '1':'0');         \
373        break;                                                                \
374    case TOKEN_AND:                                                           \
375    case TOKEN_OR:                                                            \
376        debug_printf((ctx), "     Evaluate: %s (Left: %s; Right: %s) -> %c\n",\
377                     (node)->token.s,                                         \
378                     (((node)->left->done) ? ((node)->left->value ?"1":"0")   \
379                                          : "short circuited"),               \
380                     (((node)->right->done) ? ((node)->right->value?"1":"0")  \
381                                          : "short circuited"),               \
382                     (node)->value ? '1' : '0');                              \
383        break;                                                                \
384    case TOKEN_EQ:                                                            \
385    case TOKEN_NE:                                                            \
386    case TOKEN_GT:                                                            \
387    case TOKEN_GE:                                                            \
388    case TOKEN_LT:                                                            \
389    case TOKEN_LE:                                                            \
390        if ((node)->right->token.type == TOKEN_RE) c = '/';                   \
391        debug_printf((ctx), "     Compare:  %s (\"%s\" with %c%s%c) -> %c\n", \
392                     (node)->token.s,                                         \
393                     (node)->left->token.value,                               \
394                     c, (node)->right->token.value, c,                        \
395                     (node)->value ? '1' : '0');                              \
396        break;                                                                \
397    default:                                                                  \
398        debug_printf((ctx), "     Evaluate: %s -> %c\n", (node)->token.s,     \
399                     (node)->value ? '1' : '0');                              \
400        break;                                                                \
401    }                                                                         \
402} while(0)
403
404#define DEBUG_DUMP_UNMATCHED(ctx, unmatched) do {                        \
405    if (unmatched) {                                                     \
406        DEBUG_PRINTF(((ctx), "     Unmatched %c\n", (char)(unmatched))); \
407    }                                                                    \
408} while(0)
409
410#define DEBUG_DUMP_COND(ctx, text)                                 \
411    DEBUG_PRINTF(((ctx), "**** %s cond status=\"%c\"\n", (text),   \
412                  ((ctx)->flags & SSI_FLAG_COND_TRUE) ? '1' : '0'))
413
414#define DEBUG_DUMP_TREE(ctx, root) debug_dump_tree(ctx, root)
415
416#else /* DEBUG_INCLUDE */
417
418#define TYPE_TOKEN(token, ttype) (token)-> : enter=0, leave=0
-
>type : modules/filters/mod_include.c line=88 column=19
t
ype = : enter=0, leave=0
=
 ttype
419
420#define CREATE_NODE(ctx, name) do {                       \
421    (name) = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc((ctx)-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, sizeof(*(name)));   \
422    (name)-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 (name)-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft = : enter=0, leave=0
=
 (name)-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight = : enter=0, leave=0
=
 NULL; \
423    (name)-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one = : enter=0, leave=0
=
 0;                                     \
424while : true=0, false=0
w
hile(0)
425
426#define DEBUG_INIT(ctx, f, bb)
427#define DEBUG_PRINTF(arg)
428#define DEBUG_DUMP_TOKEN(ctx, token)
429#define DEBUG_DUMP_EVAL(ctx, node)
430#define DEBUG_DUMP_UNMATCHED(ctx, unmatched)
431#define DEBUG_DUMP_COND(ctx, text)
432#define DEBUG_DUMP_TREE(ctx, root)
433
434#endif /* !DEBUG_INCLUDE */
435
436
437/*
438 * +-------------------------------------------------------+
439 * |                                                       |
440 * |                 Static Module Data
441 * |                                                       |
442 * +-------------------------------------------------------+
443 */
444
445/* global module structure */
446module AP_MODULE_DECLARE_DATA include_module;
447
448/* function handlers for include directives */
449static apr_hash_t *include_handlers;
450
451/* forward declaration of handler registry */
452static APR_OPTIONAL_FN_TYPE(ap_register_include_handler) *ssi_pfn_register;
453
454/* Sentinel value to store in subprocess_env for items that
455 * shouldn't be evaluated until/unless they're actually used
456 */
457static const char lazy_eval_sentinel;
458#define LAZY_VALUE (&lazy_eval_sentinel : modules/filters/mod_include.c line=457 column=19
l
azy_eval_sentinel)
459
460/* default values */
461#define DEFAULT_START_SEQUENCE "<!--#"
462#define DEFAULT_END_SEQUENCE "-->"
463#define DEFAULT_ERROR_MSG "[an error occurred while processing this directive]"
464#define DEFAULT_TIME_FORMAT "%A, %d-%b-%Y %H:%M:%S %Z"
465#define DEFAULT_UNDEFINED_ECHO "(none)"
466#define DEFAULT_ACCESSENABLE 0
467#define DEFAULT_LASTMODIFIED 0
468#define DEFAULT_ETAG 0
469
470#ifdef XBITHACK
471#define DEFAULT_XBITHACK XBITHACK_FULL
472#else
473#define DEFAULT_XBITHACK XBITHACK_OFF : modules/filters/mod_include.c line=108 column=5
X
BITHACK_OFF
474#endif
475
476
477/*
478 * +-------------------------------------------------------+
479 * |                                                       |
480 * |            Environment/Expansion Functions
481 * |                                                       |
482 * +-------------------------------------------------------+
483 */
484
485/*
486 * decodes a string containing html entities or numeric character references.
487 * 's' is overwritten with the decoded string.
488 * If 's' is syntatically incorrect, then the followed fixups will be made:
489 *   unknown entities will be left undecoded;
490 *   references to unused numeric characters will be deleted.
491 *   In particular, &#00; will not be decoded, but will be deleted.
492 */
493
494/* maximum length of any ISO-LATIN-1 HTML entity name. */
495#define MAXENTLEN (6)
496
497/* The following is a shrinking transformation, therefore safe. */
498
499static void decodehtml : call=0
d
ecodehtml(char *s)
500{
501    int val, i, j;
502    char *p;
503    const char *ents;
504    static const char * const entlist[MAXENTLEN + 1] =
505    {
506        NULL,                     /* 0 */
507        NULL,                     /* 1 */
508        "lt\074gt\076",           /* 2 */
509        "amp\046ETH\320eth\360",  /* 3 */
510        "quot\042Auml\304Euml\313Iuml\317Ouml\326Uuml\334auml\344euml"
511        "\353iuml\357ouml\366uuml\374yuml\377",                         /* 4 */
512
513        "Acirc\302Aring\305AElig\306Ecirc\312Icirc\316Ocirc\324Ucirc"
514        "\333THORN\336szlig\337acirc\342aring\345aelig\346ecirc\352"
515        "icirc\356ocirc\364ucirc\373thorn\376",                         /* 5 */
516
517        "Agrave\300Aacute\301Atilde\303Ccedil\307Egrave\310Eacute\311"
518        "Igrave\314Iacute\315Ntilde\321Ograve\322Oacute\323Otilde"
519        "\325Oslash\330Ugrave\331Uacute\332Yacute\335agrave\340"
520        "aacute\341atilde\343ccedil\347egrave\350eacute\351igrave"
521        "\354iacute\355ntilde\361ograve\362oacute\363otilde\365"
522        "oslash\370ugrave\371uacute\372yacute\375"                      /* 6 */
523    };
524
525    /* Do a fast scan through the string until we find anything
526     * that needs more complicated handling
527     */
528    for : true=0, false=0
f
or (; * dereference : enter=0, leave=0
*
s : modules/filters/mod_include.c line=499 column=30
s
 != : true=0, false=0
!
= '&'; s : modules/filters/mod_include.c line=499 column=30
s
++ : pass=0
+
+) {
529        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
s : modules/filters/mod_include.c line=499 column=30
s
 == : true=0, false=0
=
= '\0') {
530            return : pass=0
r
eturn;
531        }
532    }
533
534    for : true=0, false=0
f
or (p : modules/filters/mod_include.c line=502 column=11
p
 = : pass=0
=
 s : modules/filters/mod_include.c line=499 column=30
s
* dereference : enter=0, leave=0
*
s : modules/filters/mod_include.c line=499 column=30
s
 != : true=0, false=0
!
= '\0'; s : modules/filters/mod_include.c line=499 column=30
s
++ : pass=0
+
+, p : modules/filters/mod_include.c line=502 column=11
p
++ : pass=0
+
+) {
535        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
s : modules/filters/mod_include.c line=499 column=30
s
 != : true=0, false=0
!
= '&') {
536            *p : modules/filters/mod_include.c line=502 column=11
p
 = : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
s : modules/filters/mod_include.c line=499 column=30
s
;
537            continue : pass=0
c
ontinue;
538        }
539        /* find end of entity */
540        for : true=0, false=0
f
or (i : modules/filters/mod_include.c line=501 column=14
i
 = : pass=0
=
 1; s : modules/filters/mod_include.c line=499 column=30
s
[] : enter=0, leave=0
[
i : modules/filters/mod_include.c line=501 column=14
i
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= ';' && : true=0, false=0
&
s : modules/filters/mod_include.c line=499 column=30
s
[] : enter=0, leave=0
[
i : modules/filters/mod_include.c line=501 column=14
i
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\0'; i : modules/filters/mod_include.c line=501 column=14
i
++ : pass=0
+
+) {
541            continue : pass=0
c
ontinue;
542        }
543
544        if : true=0, false=0
i
f (s : modules/filters/mod_include.c line=499 column=30
s
[] : enter=0, leave=0
[
i : modules/filters/mod_include.c line=501 column=14
i
== : true=0, false=0
=
= '\0') {     /* treat as normal data */
545            *p : modules/filters/mod_include.c line=502 column=11
p
 = : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
s : modules/filters/mod_include.c line=499 column=30
s
;
546            continue : pass=0
c
ontinue;
547        }
548
549        /* is it numeric ? */
550        if : true=0, false=0
i
f (s : modules/filters/mod_include.c line=499 column=30
s
[] : enter=0, leave=0
[
1] == : true=0, false=0
=
= '#') {
551            for : true=0, false=0
f
or (j : modules/filters/mod_include.c line=501 column=17
j
 = : pass=0
=
 2, val : modules/filters/mod_include.c line=501 column=9
v
al = : pass=0
=
 0; j : modules/filters/mod_include.c line=501 column=17
j
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 i : modules/filters/mod_include.c line=501 column=14
i
 && : true=0, false=0
&
& apr_isdigit(s : modules/filters/mod_include.c line=499 column=30
s
[] : enter=0, leave=0
[
j : modules/filters/mod_include.c line=501 column=17
j
]); j : modules/filters/mod_include.c line=501 column=17
j
++ : pass=0
+
+) {
552                val : modules/filters/mod_include.c line=501 column=9
v
al = : pass=0
=
 val : modules/filters/mod_include.c line=501 column=9
v
al * : pass=0
*
 10 + : pass=0
+
 s : modules/filters/mod_include.c line=499 column=30
s
[] : enter=0, leave=0
[
j : modules/filters/mod_include.c line=501 column=17
j
- : pass=0
-
 '0';
553            }
554            s : modules/filters/mod_include.c line=499 column=30
s
 += : pass=0
+
i : modules/filters/mod_include.c line=501 column=14
i
;
555            if : true=0, false=0
i
f (j : modules/filters/mod_include.c line=501 column=17
j
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 i : modules/filters/mod_include.c line=501 column=14
i
 || : true=0, false=0
|
val : modules/filters/mod_include.c line=501 column=9
v
al <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
= 8 || : true=0, false=0
|
| (val : modules/filters/mod_include.c line=501 column=9
v
al >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
= 11 && : true=0, false=0
&
val : modules/filters/mod_include.c line=501 column=9
v
al <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
= 31) || : true=0, false=0
|
|
556                (val : modules/filters/mod_include.c line=501 column=9
v
al >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
= 127 && : true=0, false=0
&
val : modules/filters/mod_include.c line=501 column=9
v
al <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
= 160) || : true=0, false=0
|
val : modules/filters/mod_include.c line=501 column=9
v
al >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
= 256) {
557                p : modules/filters/mod_include.c line=502 column=11
p
-- : pass=0
-
-;            /* no data to output */
558            }
559            else {
560                *p : modules/filters/mod_include.c line=502 column=11
p
 = : enter=0, leave=0
=
 RAW_ASCII_CHAR(val : modules/filters/mod_include.c line=501 column=9
v
al);
561            }
562        }
563        else {
564            j : modules/filters/mod_include.c line=501 column=17
j
 = : pass=0
=
 i : modules/filters/mod_include.c line=501 column=14
i
 - : pass=0
-
 1;
565            if : true=0, false=0
i
f (j : modules/filters/mod_include.c line=501 column=17
j
 > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 MAXENTLEN || : true=0, false=0
|
entlist : modules/filters/mod_include.c line=504 column=31
e
ntlist[] : enter=0, leave=0
[
j : modules/filters/mod_include.c line=501 column=17
j
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= NULL) {
566                /* wrong length */
567                *p : modules/filters/mod_include.c line=502 column=11
p
 = : enter=0, leave=0
=
 '&';
568                continue : pass=0
c
ontinue;       /* skip it */
569            }
570            for : true=0, false=0
f
or (ents : modules/filters/mod_include.c line=503 column=17
e
nts = : pass=0
=
 entlist : modules/filters/mod_include.c line=504 column=31
e
ntlist[] : enter=0, leave=0
[
j : modules/filters/mod_include.c line=501 column=17
j
]; * dereference : enter=0, leave=0
*
ents : modules/filters/mod_include.c line=503 column=17
e
nts != : true=0, false=0
!
= '\0'; ents : modules/filters/mod_include.c line=503 column=17
e
nts += : pass=0
+
i : modules/filters/mod_include.c line=501 column=14
i
) {
571                if : true=0, false=0
i
f (strncmp : enter=0, leave=0

strncmp : /usr/include/string.h line=146 column=12
s
trncmp(s : modules/filters/mod_include.c line=499 column=30
s
 + : pass=0
+
 1, ents : modules/filters/mod_include.c line=503 column=17
e
nts, j : modules/filters/mod_include.c line=501 column=17
j
== : true=0, false=0
=
= 0) {
572                    break : pass=0
b
reak;
573                }
574            }
575
576            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
ents : modules/filters/mod_include.c line=503 column=17
e
nts == : true=0, false=0
=
= '\0') {
577                *p : modules/filters/mod_include.c line=502 column=11
p
 = : enter=0, leave=0
=
 '&';       /* unknown */
578            }
579            else {
580                *p : modules/filters/mod_include.c line=502 column=11
p
 = : enter=0, leave=0
=
 RAW_ASCII_CHAR(((const unsigned char *) ents : modules/filters/mod_include.c line=503 column=17
e
nts)[] : enter=0, leave=0
[
j : modules/filters/mod_include.c line=501 column=17
j
]);
581                s : modules/filters/mod_include.c line=499 column=30
s
 += : pass=0
+
i : modules/filters/mod_include.c line=501 column=14
i
;
582            }
583        }
584    }
585
586    *p : modules/filters/mod_include.c line=502 column=11
p
 = : enter=0, leave=0
=
 '\0';
587}
588
589static void add_include_vars : call=0
a
dd_include_vars(request_rec *r)
590{
591    apr_table_t *e = r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env;
592    char *t;
593
594    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(e : modules/filters/mod_include.c line=591 column=18
e
, "DATE_LOCAL", LAZY_VALUE);
595    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(e : modules/filters/mod_include.c line=591 column=18
e
, "DATE_GMT", LAZY_VALUE);
596    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(e : modules/filters/mod_include.c line=591 column=18
e
, "LAST_MODIFIED", LAZY_VALUE);
597    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(e : modules/filters/mod_include.c line=591 column=18
e
, "DOCUMENT_URI", r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
598    if : true=0, false=0
i
f (r : modules/filters/mod_include.c line=589 column=43
r
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>path_info : include/httpd.h line=953 column=11
p
ath_info && : true=0, false=0
&
MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>path_info : include/httpd.h line=953 column=11
p
ath_info) {
599        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(e : modules/filters/mod_include.c line=591 column=18
e
, "DOCUMENT_PATH_INFO", r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>path_info : include/httpd.h line=953 column=11
p
ath_info);
600    }
601    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(e : modules/filters/mod_include.c line=591 column=18
e
, "USER_NAME", LAZY_VALUE);
602    if : true=0, false=0
i
f (r : modules/filters/mod_include.c line=589 column=43
r
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>filename : include/httpd.h line=948 column=11
f
ilename && : true=0, false=0
&
& (t : modules/filters/mod_include.c line=592 column=11
t
 = : pass=0
MC/DC independently affect : true=0, false=0
=TF
 strrchr : enter=0, leave=0

strrchr : /usr/include/string.h line=262 column=14
s
trrchr(r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename, '/'))) {
603        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(e : modules/filters/mod_include.c line=591 column=18
e
, "DOCUMENT_NAME", ++ : pass=0
+
+t : modules/filters/mod_include.c line=592 column=11
t
);
604    }
605    else {
606        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(e : modules/filters/mod_include.c line=591 column=18
e
, "DOCUMENT_NAME", r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>uri : include/httpd.h line=946 column=11
u
ri);
607    }
608    if : true=0, false=0
i
f (r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs) {
609        char *arg_copy = apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs);
610
611        ap_unescape_url : enter=0, leave=0

ap_unescape_url : include/httpd.h line=1455 column=17
a
p_unescape_url(arg_copy : modules/filters/mod_include.c line=609 column=15
a
rg_copy);
612        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(e : modules/filters/mod_include.c line=591 column=18
e
, "QUERY_STRING_UNESCAPED",
613                  ap_escape_shell_cmd : enter=0, leave=0

ap_escape_shell_cmd : include/httpd.h line=1557 column=20
a
p_escape_shell_cmd(r : modules/filters/mod_include.c line=589 column=43
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, arg_copy : modules/filters/mod_include.c line=609 column=15
a
rg_copy));
614    }
615}
616
617static const char *add_include_vars_lazy : call=0
a
dd_include_vars_lazy(request_rec *r, const char *var, const char *timefmt)
618{
619    char *val;
620    if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(var : modules/filters/mod_include.c line=617 column=70
v
ar, "DATE_LOCAL")) {
621        val : modules/filters/mod_include.c line=619 column=11
v
al = : pass=0
=
 ap_ht_time : enter=0, leave=0

ap_ht_time : include/httpd.h line=1286 column=20
a
p_ht_time(r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time, timefmt : modules/filters/mod_include.c line=617 column=87
t
imefmt, 0);
622    }
623    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(var : modules/filters/mod_include.c line=617 column=70
v
ar, "DATE_GMT")) {
624        val : modules/filters/mod_include.c line=619 column=11
v
al = : pass=0
=
 ap_ht_time : enter=0, leave=0

ap_ht_time : include/httpd.h line=1286 column=20
a
p_ht_time(r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time, timefmt : modules/filters/mod_include.c line=617 column=87
t
imefmt, 1);
625    }
626    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(var : modules/filters/mod_include.c line=617 column=70
v
ar, "LAST_MODIFIED")) {
627        val : modules/filters/mod_include.c line=619 column=11
v
al = : pass=0
=
 ap_ht_time : enter=0, leave=0

ap_ht_time : include/httpd.h line=1286 column=20
a
p_ht_time(r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16 mtime, timefmt : modules/filters/mod_include.c line=617 column=87
t
imefmt, 0);
628    }
629    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(var : modules/filters/mod_include.c line=617 column=70
v
ar, "USER_NAME")) {
630        if : true=0, false=0
i
f (apr_uid_name_get : enter=0, leave=0

apr_uid_name_get : /usr/include/apr-1/apr_user.h line=77 column=27
a
pr_uid_name_get(&val : modules/filters/mod_include.c line=619 column=11
v
al, r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.user : /usr/include/apr-1/apr_file_info.h line=188 column=15 user, r : modules/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool) != : true=0, false=0
!
= APR_SUCCESS) {
631            val : modules/filters/mod_include.c line=619 column=11
v
al = : pass=0
=
 "<unknown>";
632        }
633    }
634    else {
635        val : modules/filters/mod_include.c line=619 column=11
v
al = : pass=0
=
 NULL;
636    }
637
638    if : true=0, false=0
i
f (val : modules/filters/mod_include.c line=619 column=11
v
al) {
639        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/filters/mod_include.c line=617 column=55
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env, var : modules/filters/mod_include.c line=617 column=70
v
ar, val : modules/filters/mod_include.c line=619 column=11
v
al);
640    }
641    return : pass=0
r
eturn val : modules/filters/mod_include.c line=619 column=11
v
al;
642}
643
644static const char *get_include_var : call=0
g
et_include_var(const char *var, include_ctx_t *ctx)
645{
646    const char *val;
647    request_rec *r = ctx : modules/filters/mod_include.c line=644 column=68
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
;
648
649    if : true=0, false=0
i
f (apr_isdigit(* dereference : enter=0, leave=0
*
var : modules/filters/mod_include.c line=644 column=48
v
ar) && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
var : modules/filters/mod_include.c line=644 column=48
v
ar[] : enter=0, leave=0
[
1]) {
650        apr_size_t idx = * dereference : enter=0, leave=0
*
var : modules/filters/mod_include.c line=644 column=48
v
ar - : pass=0
-
 '0';
651        backref_t *re = ctx : modules/filters/mod_include.c line=644 column=68
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>re : modules/filters/mod_include.c line=193 column=19
r
e;
652
653        /* Handle $0 .. $9 from the last regex evaluated.
654         * The choice of returning NULL strings on not-found,
655         * v.s. empty strings on an empty match is deliberate.
656         */
657        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
re : modules/filters/mod_include.c line=651 column=20
r
|| : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>have_match : modules/filters/mod_include.c line=163 column=17
h
ave_match) {
658            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r : modules/filters/mod_include.c line=647 column=18
r
,
659                "regex capture $%" APR_SIZE_T_FMT " refers to no regex in %s",
660                idx : modules/filters/mod_include.c line=650 column=20
i
dx, r : modules/filters/mod_include.c line=647 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
661            return : pass=0
r
eturn NULL;
662        }
663        else if : true=0, false=0
i
f (re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>nsub : modules/filters/mod_include.c line=161 column=17
n
sub < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 idx : modules/filters/mod_include.c line=650 column=20
i
dx || : true=0, false=0
|
idx : modules/filters/mod_include.c line=650 column=20
i
dx >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
= AP_MAX_REG_MATCH) {
664            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r : modules/filters/mod_include.c line=647 column=18
r
,
665                          "regex capture $%" APR_SIZE_T_FMT
666                          " is out of range (last regex was: '%s') in %s",
667                          idx : modules/filters/mod_include.c line=650 column=20
i
dx, re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>rexp : modules/filters/mod_include.c line=160 column=17
r
exp, r : modules/filters/mod_include.c line=647 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
668            return : pass=0
r
eturn NULL;
669        }
670        else if : true=0, false=0
i
f (re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>match : modules/filters/mod_include.c line=162 column=19
m
atch[] : enter=0, leave=0
[
idx : modules/filters/mod_include.c line=650 column=20
i
dx].rm_so : include/ap_regex.h line=93 column=9 rm_so < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 0 || : true=0, false=0
|
re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>match : modules/filters/mod_include.c line=162 column=19
m
atch[] : enter=0, leave=0
[
idx : modules/filters/mod_include.c line=650 column=20
i
dx].rm_eo : include/ap_regex.h line=94 column=9 rm_eo < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 0) {
671            /* I don't think this can happen if have_match is true.
672             * But let's not risk a regression by dropping this
673             */
674            return : pass=0
r
eturn NULL;
675        }
676        else {
677            val : modules/filters/mod_include.c line=646 column=17
v
al = : pass=0
=
 apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(ctx : modules/filters/mod_include.c line=644 column=68
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>source : modules/filters/mod_include.c line=159 column=17
s
ource + : pass=0
+
 re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>match : modules/filters/mod_include.c line=162 column=19
m
atch[] : enter=0, leave=0
[
idx : modules/filters/mod_include.c line=650 column=20
i
dx].rm_so : include/ap_regex.h line=93 column=9 rm_so,
678                                 re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>match : modules/filters/mod_include.c line=162 column=19
m
atch[] : enter=0, leave=0
[
idx : modules/filters/mod_include.c line=650 column=20
i
dx].rm_eo : include/ap_regex.h line=94 column=9 rm_eo - : pass=0
-
 re : modules/filters/mod_include.c line=651 column=20
r
e-> : enter=0, leave=0
-
>match : modules/filters/mod_include.c line=162 column=19
m
atch[] : enter=0, leave=0
[
idx : modules/filters/mod_include.c line=650 column=20
i
dx].rm_so : include/ap_regex.h line=93 column=9 rm_so);
679        }
680    }
681    else {
682        val : modules/filters/mod_include.c line=646 column=17
v
al = : pass=0
=
 apr_table_get : enter=0, leave=0

apr_table_get : /usr/include/apr-1/apr_tables.h line=258 column=27
a
pr_table_get(r : modules/filters/mod_include.c line=647 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env, var : modules/filters/mod_include.c line=644 column=48
v
ar);
683
684        if : true=0, false=0
i
f (val : modules/filters/mod_include.c line=646 column=17
v
al == : true=0, false=0
=
= LAZY_VALUE) {
685            val : modules/filters/mod_include.c line=646 column=17
v
al = : pass=0
=
 add_include_vars_lazy : enter=0, leave=0

add_include_vars_lazy : modules/filters/mod_include.c line=617 column=20
a
dd_include_vars_lazy(r : modules/filters/mod_include.c line=647 column=18
r
var : modules/filters/mod_include.c line=644 column=48
v
ar, ctx : modules/filters/mod_include.c line=644 column=68
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str);
686        }
687    }
688
689    return : pass=0
r
eturn val : modules/filters/mod_include.c line=646 column=17
v
al;
690}
691
692/*
693 * Do variable substitution on strings
694 *
695 * (Note: If out==NULL, this function allocs a buffer for the resulting
696 * string from ctx->pool. The return value is always the parsed string)
697 */
698static char *ap_ssi_parse_string : call=0
a
p_ssi_parse_string(include_ctx_t *ctx, const char *in, char *out,
699                                 apr_size_t length, int leave_name)
700{
701    request_rec *r = ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
;
702    result_item_t *result = NULL, *current = NULL;
703    apr_size_t outlen = 0, inlen, span;
704    char *ret = NULL, *eout = NULL;
705    const char *p;
706
707    if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
708        /* sanity check, out && !length is not supported */
709        ap_assert(MC/DC independently affect : true=0, false=0

out : modules/filters/mod_include.c line=698 column=76
oTF
ut && : true=0, false=0
&
MC/DC independently affect : true=0, false=0

length : modules/filters/mod_include.c line=699 column=45
lTF
ength);
710
711        ret : modules/filters/mod_include.c line=704 column=11
r
et = : pass=0
=
 out : modules/filters/mod_include.c line=698 column=76
o
ut;
712        eout : modules/filters/mod_include.c line=704 column=24
e
out = : pass=0
=
 out : modules/filters/mod_include.c line=698 column=76
o
ut + : pass=0
+
 length : modules/filters/mod_include.c line=699 column=45
l
ength - : pass=0
-
 1;
713    }
714
715    span : modules/filters/mod_include.c line=703 column=35
s
pan = : pass=0
=
 strcspn : enter=0, leave=0

strcspn : /usr/include/string.h line=284 column=15
s
trcspn(in : modules/filters/mod_include.c line=698 column=66
i
n, "\\$");
716    inlen : modules/filters/mod_include.c line=703 column=28
i
nlen = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(in : modules/filters/mod_include.c line=698 column=66
i
n);
717
718    /* fast exit */
719    if : true=0, false=0
i
f (inlen : modules/filters/mod_include.c line=703 column=28
i
nlen == : true=0, false=0
=
span : modules/filters/mod_include.c line=703 column=35
s
pan) {
720        if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
721            apr_cpystrn : enter=0, leave=0

apr_cpystrn : /usr/include/apr-1/apr_strings.h line=195 column=21
a
pr_cpystrn(out : modules/filters/mod_include.c line=698 column=76
o
ut, in : modules/filters/mod_include.c line=698 column=66
i
n, length : modules/filters/mod_include.c line=699 column=45
l
ength);
722        }
723        else {
724            ret : modules/filters/mod_include.c line=704 column=11
r
et = : pass=0
=
 apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, in : modules/filters/mod_include.c line=698 column=66
i
n, (MC/DC independently affect : true=0, false=0

length : modules/filters/mod_include.c line=699 column=45
lTF
ength && : true=0, false=0
&
length : modules/filters/mod_include.c line=699 column=45
l
ength <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
inlen : modules/filters/mod_include.c line=703 column=28
i
nlen)
725                                                conditional operator : true=0, false=0
?
 length : modules/filters/mod_include.c line=699 column=45
l
ength - : pass=0
-
 1 : inlen : modules/filters/mod_include.c line=703 column=28
i
nlen);
726        }
727
728        return : pass=0
r
eturn ret : modules/filters/mod_include.c line=704 column=11
r
et;
729    }
730
731    /* well, actually something to do */
732    p : modules/filters/mod_include.c line=705 column=17
p
 = : pass=0
=
 in : modules/filters/mod_include.c line=698 column=66
i
+ : pass=0
+
 span : modules/filters/mod_include.c line=703 column=35
s
pan;
733
734    if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
735        if : true=0, false=0
i
f (span : modules/filters/mod_include.c line=703 column=35
s
pan) {
736            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(out : modules/filters/mod_include.c line=698 column=76
o
ut, in : modules/filters/mod_include.c line=698 column=66
i
n, (out : modules/filters/mod_include.c line=698 column=76
o
ut+ : pass=0
+
span : modules/filters/mod_include.c line=703 column=35
s
pan <= : true=0, false=0
<
eout : modules/filters/mod_include.c line=704 column=24
e
out) conditional operator : true=0, false=0
?
 span : modules/filters/mod_include.c line=703 column=35
s
pan : (eout : modules/filters/mod_include.c line=704 column=24
e
out- : pass=0
-
out : modules/filters/mod_include.c line=698 column=76
o
ut));
737            out : modules/filters/mod_include.c line=698 column=76
o
ut += : pass=0
+
span : modules/filters/mod_include.c line=703 column=35
s
pan;
738        }
739    }
740    else {
741        current : modules/filters/mod_include.c line=702 column=36
c
urrent = : pass=0
=
 result : modules/filters/mod_include.c line=702 column=20
r
esult = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, sizeof(*result));
742        current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext = : enter=0, leave=0
=
 NULL;
743        current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>string : modules/filters/mod_include.c line=65 column=17
s
tring = : enter=0, leave=0
=
 in : modules/filters/mod_include.c line=698 column=66
i
n;
744        current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en = : enter=0, leave=0
=
 span : modules/filters/mod_include.c line=703 column=35
s
pan;
745        outlen : modules/filters/mod_include.c line=703 column=16
o
utlen = : pass=0
=
 span : modules/filters/mod_include.c line=703 column=35
s
pan;
746    }
747
748    /* loop for specials */
749    do {
750        if : true=0, false=0
i
f ((MC/DC independently affect : true=0, false=0

out : modules/filters/mod_include.c line=698 column=76
oTF
ut && : true=0, false=0
&
out : modules/filters/mod_include.c line=698 column=76
o
ut >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
eout : modules/filters/mod_include.c line=704 column=24
e
out) || : true=0, false=0
|
| (MC/DC independently affect : true=0, false=0

length : modules/filters/mod_include.c line=699 column=45
lTF
ength && : true=0, false=0
&
outlen : modules/filters/mod_include.c line=703 column=16
o
utlen >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
length : modules/filters/mod_include.c line=699 column=45
l
ength)) {
751            break : pass=0
b
reak;
752        }
753
754        /* prepare next entry */
755        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
out : modules/filters/mod_include.c line=698 column=76
o
ut && : true=0, false=0
&
current : modules/filters/mod_include.c line=702 column=36
c
urrentMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>len : modules/filters/mod_include.c line=64 column=16
l
en) {
756            current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext = : enter=0, leave=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, sizeof(*current->next));
757            current : modules/filters/mod_include.c line=702 column=36
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext;
758            current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext = : enter=0, leave=0
=
 NULL;
759            current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en = : enter=0, leave=0
=
 0;
760        }
761
762        /*
763         * escaped character
764         */
765        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=705 column=17
p
 == : true=0, false=0
=
= '\\') {
766            if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
767                *out : modules/filters/mod_include.c line=698 column=76
o
ut++ : pass=0
+
= : enter=0, leave=0
=
 (p : modules/filters/mod_include.c line=705 column=17
p
[] : enter=0, leave=0
[
1] == : true=0, false=0
=
= '$') conditional operator : true=0, false=0
?
 * dereference : enter=0, leave=0
*
++ : pass=0
+
+p : modules/filters/mod_include.c line=705 column=17
p
 : * dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=705 column=17
p
;
768                ++ : pass=0
+
+p : modules/filters/mod_include.c line=705 column=17
p
;
769            }
770            else {
771                current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en = : enter=0, leave=0
=
 1;
772                current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>string : modules/filters/mod_include.c line=65 column=17
s
tring = : enter=0, leave=0
=
 (p : modules/filters/mod_include.c line=705 column=17
p
[] : enter=0, leave=0
[
1] == : true=0, false=0
=
= '$') conditional operator : true=0, false=0
?
 ++ : pass=0
+
+p : modules/filters/mod_include.c line=705 column=17
p
 : p : modules/filters/mod_include.c line=705 column=17
p
;
773                ++ : pass=0
+
+p : modules/filters/mod_include.c line=705 column=17
p
;
774                ++ : pass=0
+
+outlen : modules/filters/mod_include.c line=703 column=16
o
utlen;
775            }
776        }
777
778        /*
779         * variable expansion
780         */
781        else {       /* *p == '$' */
782            const char *newp = NULL, *ep, *key = NULL;
783
784            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
++ : pass=0
+
+p : modules/filters/mod_include.c line=705 column=17
p
 == : true=0, false=0
=
= '{') {
785                ep : modules/filters/mod_include.c line=782 column=39
e
= : pass=0
=
 ap_strchr_c(++ : pass=0
+
+p : modules/filters/mod_include.c line=705 column=17
p
, '}');
786                if : true=0, false=0
i
f (! : true=0, false=0
!
ep : modules/filters/mod_include.c line=782 column=39
e
p) {
787                    ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=701 column=18
r
, "Missing '}' on "
788                                  "variable \"%s\" in %s", p : modules/filters/mod_include.c line=705 column=17
p
r : modules/filters/mod_include.c line=701 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
789                    break : pass=0
b
reak;
790                }
791
792                if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=705 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=782 column=39
e
p) {
793                    key : modules/filters/mod_include.c line=782 column=44
k
ey = : pass=0
=
 apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, p : modules/filters/mod_include.c line=705 column=17
p
ep : modules/filters/mod_include.c line=782 column=39
e
- : pass=0
-
 p : modules/filters/mod_include.c line=705 column=17
p
);
794                    newp : modules/filters/mod_include.c line=782 column=25
n
ewp = : pass=0
=
 ep : modules/filters/mod_include.c line=782 column=39
e
+ : pass=0
+
 1;
795                }
796                p : modules/filters/mod_include.c line=705 column=17
p
 -= : pass=0
-
= 2;
797            }
798            else {
799                ep : modules/filters/mod_include.c line=782 column=39
e
= : pass=0
=
 p : modules/filters/mod_include.c line=705 column=17
p
;
800                while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
ep : modules/filters/mod_include.c line=782 column=39
e
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '_' || : true=0, false=0
|
| apr_isalnum(* dereference : enter=0, leave=0
*
ep : modules/filters/mod_include.c line=782 column=39
e
p)) {
801                    ++ : pass=0
+
+ep : modules/filters/mod_include.c line=782 column=39
e
p;
802                }
803
804                if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=705 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=782 column=39
e
p) {
805                    key : modules/filters/mod_include.c line=782 column=44
k
ey = : pass=0
=
 apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, p : modules/filters/mod_include.c line=705 column=17
p
ep : modules/filters/mod_include.c line=782 column=39
e
- : pass=0
-
 p : modules/filters/mod_include.c line=705 column=17
p
);
806                    newp : modules/filters/mod_include.c line=782 column=25
n
ewp = : pass=0
=
 ep : modules/filters/mod_include.c line=782 column=39
e
p;
807                }
808                -- : pass=0
-
-p : modules/filters/mod_include.c line=705 column=17
p
;
809            }
810
811            /* empty name results in a copy of '$' in the output string */
812            if : true=0, false=0
i
f (! : true=0, false=0
!
key : modules/filters/mod_include.c line=782 column=44
k
ey) {
813                if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
814                    *out : modules/filters/mod_include.c line=698 column=76
o
ut++ : pass=0
+
= : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=705 column=17
p
++ : pass=0
+
+;
815                }
816                else {
817                    current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en = : enter=0, leave=0
=
 1;
818                    current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>string : modules/filters/mod_include.c line=65 column=17
s
tring = : enter=0, leave=0
=
 p : modules/filters/mod_include.c line=705 column=17
p
++ : pass=0
+
+;
819                    ++ : pass=0
+
+outlen : modules/filters/mod_include.c line=703 column=16
o
utlen;
820                }
821            }
822            else {
823                const char *val = get_include_var : enter=0, leave=0

get_include_var : modules/filters/mod_include.c line=644 column=20
g
et_include_var(key : modules/filters/mod_include.c line=782 column=44
k
ey, ctx : modules/filters/mod_include.c line=698 column=49
c
tx);
824                apr_size_t len = 0;
825
826                if : true=0, false=0
i
f (val : modules/filters/mod_include.c line=823 column=29
v
al) {
827                    len : modules/filters/mod_include.c line=824 column=28
l
en = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(val : modules/filters/mod_include.c line=823 column=29
v
al);
828                }
829                else if : true=0, false=0
i
f (leave_name : modules/filters/mod_include.c line=699 column=57
l
eave_name) {
830                    val : modules/filters/mod_include.c line=823 column=29
v
al = : pass=0
=
 p : modules/filters/mod_include.c line=705 column=17
p
;
831                    len : modules/filters/mod_include.c line=824 column=28
l
en = : pass=0
=
 ep : modules/filters/mod_include.c line=782 column=39
e
- : pass=0
-
 p : modules/filters/mod_include.c line=705 column=17
p
;
832                }
833
834                if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

val : modules/filters/mod_include.c line=823 column=29
vTF
al && : true=0, false=0
&
MC/DC independently affect : true=0, false=0

len : modules/filters/mod_include.c line=824 column=28
lTF
en) {
835                    if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
836                        memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(out : modules/filters/mod_include.c line=698 column=76
o
ut, val : modules/filters/mod_include.c line=823 column=29
v
al, (out : modules/filters/mod_include.c line=698 column=76
o
ut+ : pass=0
+
len : modules/filters/mod_include.c line=824 column=28
l
en <= : true=0, false=0
<
eout : modules/filters/mod_include.c line=704 column=24
e
out) conditional operator : true=0, false=0
?
 len : modules/filters/mod_include.c line=824 column=28
l
en : (eout : modules/filters/mod_include.c line=704 column=24
e
out- : pass=0
-
out : modules/filters/mod_include.c line=698 column=76
o
ut));
837                        out : modules/filters/mod_include.c line=698 column=76
o
ut += : pass=0
+
len : modules/filters/mod_include.c line=824 column=28
l
en;
838                    }
839                    else {
840                        current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en = : enter=0, leave=0
=
 len : modules/filters/mod_include.c line=824 column=28
l
en;
841                        current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>string : modules/filters/mod_include.c line=65 column=17
s
tring = : enter=0, leave=0
=
 val : modules/filters/mod_include.c line=823 column=29
v
al;
842                        outlen : modules/filters/mod_include.c line=703 column=16
o
utlen += : pass=0
+
len : modules/filters/mod_include.c line=824 column=28
l
en;
843                    }
844                }
845
846                p : modules/filters/mod_include.c line=705 column=17
p
 = : pass=0
=
 newp : modules/filters/mod_include.c line=782 column=25
n
ewp;
847            }
848        }
849
850        if : true=0, false=0
i
f ((MC/DC independently affect : true=0, false=0

out : modules/filters/mod_include.c line=698 column=76
oTF
ut && : true=0, false=0
&
out : modules/filters/mod_include.c line=698 column=76
o
ut >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
eout : modules/filters/mod_include.c line=704 column=24
e
out) || : true=0, false=0
|
| (MC/DC independently affect : true=0, false=0

length : modules/filters/mod_include.c line=699 column=45
lTF
ength && : true=0, false=0
&
outlen : modules/filters/mod_include.c line=703 column=16
o
utlen >= : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
length : modules/filters/mod_include.c line=699 column=45
l
ength)) {
851            break : pass=0
b
reak;
852        }
853
854        /* check the remainder */
855        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
p : modules/filters/mod_include.c line=705 column=17
p
 && : true=0, false=0
&
& (span : modules/filters/mod_include.c line=703 column=35
s
pan = : pass=0
=
 strcspn : enter=0, leave=0

strcspn : /usr/include/string.h line=284 column=15
s
trcspn(p : modules/filters/mod_include.c line=705 column=17
p
, "\\$")) > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 0) {
856            if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
out : modules/filters/mod_include.c line=698 column=76
o
ut && : true=0, false=0
&
current : modules/filters/mod_include.c line=702 column=36
c
urrentMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>len : modules/filters/mod_include.c line=64 column=16
l
en) {
857                current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext = : enter=0, leave=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, sizeof(*current->next));
858                current : modules/filters/mod_include.c line=702 column=36
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext;
859                current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext = : enter=0, leave=0
=
 NULL;
860            }
861
862            if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
863                memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(out : modules/filters/mod_include.c line=698 column=76
o
ut, p : modules/filters/mod_include.c line=705 column=17
p
, (out : modules/filters/mod_include.c line=698 column=76
o
ut+ : pass=0
+
span : modules/filters/mod_include.c line=703 column=35
s
pan <= : true=0, false=0
<
eout : modules/filters/mod_include.c line=704 column=24
e
out) conditional operator : true=0, false=0
?
 span : modules/filters/mod_include.c line=703 column=35
s
pan : (eout : modules/filters/mod_include.c line=704 column=24
e
out- : pass=0
-
out : modules/filters/mod_include.c line=698 column=76
o
ut));
864                out : modules/filters/mod_include.c line=698 column=76
o
ut += : pass=0
+
span : modules/filters/mod_include.c line=703 column=35
s
pan;
865            }
866            else {
867                current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en = : enter=0, leave=0
=
 span : modules/filters/mod_include.c line=703 column=35
s
pan;
868                current : modules/filters/mod_include.c line=702 column=36
c
urrent-> : enter=0, leave=0
-
>string : modules/filters/mod_include.c line=65 column=17
s
tring = : enter=0, leave=0
=
 p : modules/filters/mod_include.c line=705 column=17
p
;
869                outlen : modules/filters/mod_include.c line=703 column=16
o
utlen += : pass=0
+
span : modules/filters/mod_include.c line=703 column=35
s
pan;
870            }
871
872            p : modules/filters/mod_include.c line=705 column=17
p
 += : pass=0
+
span : modules/filters/mod_include.c line=703 column=35
s
pan;
873        }
874    } while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=705 column=17
p
 < : true=0, false=0
<
 in : modules/filters/mod_include.c line=698 column=66
i
n+ : pass=0
+
inlen : modules/filters/mod_include.c line=703 column=28
i
nlen);
875
876    /* assemble result */
877    if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut) {
878        if : true=0, false=0
i
f (out : modules/filters/mod_include.c line=698 column=76
o
ut > : true=0, false=0
>
 eout : modules/filters/mod_include.c line=704 column=24
e
out) {
879            *eout : modules/filters/mod_include.c line=704 column=24
e
out = : enter=0, leave=0
=
 '\0';
880        }
881        else {
882            *out : modules/filters/mod_include.c line=698 column=76
o
ut = : enter=0, leave=0
=
 '\0';
883        }
884    }
885    else {
886        const char *ep;
887
888        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

length : modules/filters/mod_include.c line=699 column=45
lTF
ength && : true=0, false=0
&
outlen : modules/filters/mod_include.c line=703 column=16
o
utlen > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 length : modules/filters/mod_include.c line=699 column=45
l
ength) {
889            outlen : modules/filters/mod_include.c line=703 column=16
o
utlen = : pass=0
=
 length : modules/filters/mod_include.c line=699 column=45
l
ength - : pass=0
-
 1;
890        }
891
892        ret : modules/filters/mod_include.c line=704 column=11
r
et = : pass=0
=
 out : modules/filters/mod_include.c line=698 column=76
o
ut = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=698 column=49
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, outlen : modules/filters/mod_include.c line=703 column=16
o
utlen + : pass=0
+
 1);
893        ep : modules/filters/mod_include.c line=886 column=21
e
= : pass=0
=
 ret : modules/filters/mod_include.c line=704 column=11
r
et + : pass=0
+
 outlen : modules/filters/mod_include.c line=703 column=16
o
utlen;
894
895        do {
896            if : true=0, false=0
i
f (result : modules/filters/mod_include.c line=702 column=20
r
esult-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en) {
897                memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(out : modules/filters/mod_include.c line=698 column=76
o
ut, result : modules/filters/mod_include.c line=702 column=20
r
esult-> : enter=0, leave=0
-
>string : modules/filters/mod_include.c line=65 column=17
s
tring, (out : modules/filters/mod_include.c line=698 column=76
o
ut+ : pass=0
+
result : modules/filters/mod_include.c line=702 column=20
r
esult-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en <= : true=0, false=0
<
ep : modules/filters/mod_include.c line=886 column=21
e
p)
898                                            conditional operator : true=0, false=0
?
 result : modules/filters/mod_include.c line=702 column=20
r
esult-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en : (ep : modules/filters/mod_include.c line=886 column=21
e
p- : pass=0
-
out : modules/filters/mod_include.c line=698 column=76
o
ut));
899                out : modules/filters/mod_include.c line=698 column=76
o
ut += : pass=0
+
result : modules/filters/mod_include.c line=702 column=20
r
esult-> : enter=0, leave=0
-
>len : modules/filters/mod_include.c line=64 column=16
l
en;
900            }
901            result : modules/filters/mod_include.c line=702 column=20
r
esult = : pass=0
=
 result : modules/filters/mod_include.c line=702 column=20
r
esult-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=63 column=25
n
ext;
902        } while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0

result : modules/filters/mod_include.c line=702 column=20
rTF
esult && : true=0, false=0
&
out : modules/filters/mod_include.c line=698 column=76
o
ut < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=886 column=21
e
p);
903
904        ret : modules/filters/mod_include.c line=704 column=11
r
et[outlen : modules/filters/mod_include.c line=703 column=16
o
utlen] = : enter=0, leave=0
=
 '\0';
905    }
906
907    return : pass=0
r
eturn ret : modules/filters/mod_include.c line=704 column=11
r
et;
908}
909
910
911/*
912 * +-------------------------------------------------------+
913 * |                                                       |
914 * |              Conditional Expression Parser
915 * |                                                       |
916 * +-------------------------------------------------------+
917 */
918
919static APR_INLINE int re_check : call=0
r
e_check(include_ctx_t *ctx, const char *string,
920                               const char *rexp)
921{
922    ap_regex_t *compiled;
923    backref_t *re = ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>re : modules/filters/mod_include.c line=193 column=19
r
e;
924
925    compiled : modules/filters/mod_include.c line=922 column=17
c
ompiled = : pass=0
=
 ap_pregcomp : enter=0, leave=0

ap_pregcomp : include/httpd.h line=1684 column=26
a
p_pregcomp(ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, rexp : modules/filters/mod_include.c line=920 column=44
r
exp, AP_REG_EXTENDED);
926    if : true=0, false=0
i
f (! : true=0, false=0
!
compiled : modules/filters/mod_include.c line=922 column=17
c
ompiled) {
927        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
, "unable to "
928                      "compile pattern \"%s\"", rexp : modules/filters/mod_include.c line=920 column=44
r
exp);
929        return : pass=0
r
eturn -1;
930    }
931
932    if : true=0, false=0
i
f (! : true=0, false=0
!
re : modules/filters/mod_include.c line=923 column=16
r
e) {
933        re : modules/filters/mod_include.c line=923 column=16
r
= : pass=0
=
 ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>re : modules/filters/mod_include.c line=193 column=19
r
= : enter=0, leave=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, sizeof(*re));
934    }
935
936    re : modules/filters/mod_include.c line=923 column=16
r
e-> : enter=0, leave=0
-
>source : modules/filters/mod_include.c line=159 column=17
s
ource = : 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(ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, string : modules/filters/mod_include.c line=919 column=64
s
tring);
937    re : modules/filters/mod_include.c line=923 column=16
r
e-> : enter=0, leave=0
-
>rexp : modules/filters/mod_include.c line=160 column=17
r
exp = : 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(ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, rexp : modules/filters/mod_include.c line=920 column=44
r
exp);
938    re : modules/filters/mod_include.c line=923 column=16
r
e-> : enter=0, leave=0
-
>nsub : modules/filters/mod_include.c line=161 column=17
n
sub = : enter=0, leave=0
=
 compiled : modules/filters/mod_include.c line=922 column=17
c
ompiled-> : enter=0, leave=0
-
>re_nsub : include/ap_regex.h line=87 column=16 re_nsub;
939    re : modules/filters/mod_include.c line=923 column=16
r
e-> : enter=0, leave=0
-
>have_match : modules/filters/mod_include.c line=163 column=17
h
ave_match = : enter=0, leave=0
=
 ! : true=0, false=0
!
ap_regexec : enter=0, leave=0

ap_regexec : include/ap_regex.h line=119 column=17
a
p_regexec(compiled : modules/filters/mod_include.c line=922 column=17
c
ompiled, string : modules/filters/mod_include.c line=919 column=64
s
tring, AP_MAX_REG_MATCH, 
940                                 re : modules/filters/mod_include.c line=923 column=16
r
e-> : enter=0, leave=0
-
>match : modules/filters/mod_include.c line=162 column=19
m
atch, 0);
941
942    ap_pregfree : enter=0, leave=0

ap_pregfree : include/httpd.h line=1692 column=18
a
p_pregfree(ctx : modules/filters/mod_include.c line=919 column=47
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, compiled : modules/filters/mod_include.c line=922 column=17
c
ompiled);
943    return : pass=0
r
eturn re : modules/filters/mod_include.c line=923 column=16
r
e-> : enter=0, leave=0
-
>have_match : modules/filters/mod_include.c line=163 column=17
h
ave_match;
944}
945
946static int get_ptoken : call=0
g
et_ptoken(include_ctx_t *ctx, const char **parse, token_t *token, token_t *previous)
947{
948    const char *p;
949    apr_size_t shift;
950    int unmatched;
951
952    token : modules/filters/mod_include.c line=946 column=72
t
oken-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=89 column=19
v
alue = : enter=0, leave=0
=
 NULL;
953
954    if : true=0, false=0
i
f (! : true=0, false=0
!
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse) {
955        return : pass=0
r
eturn 0;
956    }
957
958    /* Skip leading white space */
959    while : true=0, false=0
w
hile (apr_isspace(* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse)) {
960        ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
961    }
962
963    if : true=0, false=0
i
f (! : true=0, false=0
!
* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse) {
964        *parse : modules/filters/mod_include.c line=946 column=56
p
arse = : enter=0, leave=0
=
 NULL;
965        return : pass=0
r
eturn 0;
966    }
967
968    TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_STRING : modules/filters/mod_include.c line=70 column=5
T
OKEN_STRING); /* the default type */
969    p : modules/filters/mod_include.c line=948 column=17
p
 = : pass=0
=
 * dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
970    unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched = : pass=0
=
 0;
971
972    switch : pass=0
s
witch (* dereference : enter=0, leave=0
*
(* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse)++ : pass=0
+
+) {
973    case : true=0, false=0
c
ase '(':
974        TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_LBRACE : modules/filters/mod_include.c line=78 column=5
T
OKEN_LBRACE);
975        return : pass=0
r
eturn 0;
976    case : true=0, false=0
c
ase ')':
977        TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_RBRACE : modules/filters/mod_include.c line=77 column=5
T
OKEN_RBRACE);
978        return : pass=0
r
eturn 0;
979    case : true=0, false=0
c
ase '=':
980        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
= '=') ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
981        TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_EQ : modules/filters/mod_include.c line=75 column=5
T
OKEN_EQ);
982        return : pass=0
r
eturn 0;
983    case : true=0, false=0
c
ase '!':
984        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
= '=') {
985            TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_NE : modules/filters/mod_include.c line=76 column=5
T
OKEN_NE);
986            ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
987            return : pass=0
r
eturn 0;
988        }
989        TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_NOT : modules/filters/mod_include.c line=74 column=5
T
OKEN_NOT);
990        return : pass=0
r
eturn 0;
991    case : true=0, false=0
c
ase '\'':
992        unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched = : pass=0
=
 '\'';
993        break : pass=0
b
reak;
994    case : true=0, false=0
c
ase '/':
995        /* if last token was ACCESS, this token is STRING */
996        if : true=0, false=0
i
f (previous : modules/filters/mod_include.c line=946 column=88
p
revious != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= NULL && : true=0, false=0
&
TOKEN_ACCESS : modules/filters/mod_include.c line=84 column=5
T
OKEN_ACCESS == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
previous : modules/filters/mod_include.c line=946 column=88
p
revious-> : enter=0, leave=0
-
>type : modules/filters/mod_include.c line=88 column=19
t
ype) {
997            break : pass=0
b
reak;
998        }
999        TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_RE : modules/filters/mod_include.c line=71 column=5
T
OKEN_RE);
1000        unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched = : pass=0
=
 '/';
1001        break : pass=0
b
reak;
1002    case : true=0, false=0
c
ase '|':
1003        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
= '|') {
1004            TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_OR : modules/filters/mod_include.c line=73 column=5
T
OKEN_OR);
1005            ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
1006            return : pass=0
r
eturn 0;
1007        }
1008        break : pass=0
b
reak;
1009    case : true=0, false=0
c
ase '&':
1010        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
= '&') {
1011            TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_AND : modules/filters/mod_include.c line=72 column=5
T
OKEN_AND);
1012            ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
1013            return : pass=0
r
eturn 0;
1014        }
1015        break : pass=0
b
reak;
1016    case : true=0, false=0
c
ase '>':
1017        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
= '=') {
1018            TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_GE : modules/filters/mod_include.c line=80 column=5
T
OKEN_GE);
1019            ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
1020            return : pass=0
r
eturn 0;
1021        }
1022        TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_GT : modules/filters/mod_include.c line=82 column=5
T
OKEN_GT);
1023        return : pass=0
r
eturn 0;
1024    case : true=0, false=0
c
ase '<':
1025        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
= '=') {
1026            TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_LE : modules/filters/mod_include.c line=81 column=5
T
OKEN_LE);
1027            ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
1028            return : pass=0
r
eturn 0;
1029        }
1030        TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_LT : modules/filters/mod_include.c line=83 column=5
T
OKEN_LT);
1031        return : pass=0
r
eturn 0;
1032    case : true=0, false=0
c
ase '-':
1033        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 'A' && : true=0, false=0
&
& (ctx : modules/filters/mod_include.c line=946 column=38
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
nternMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>accessenable : modules/filters/mod_include.c line=198 column=17
a
ccessenable)) {
1034            TYPE_TOKEN(token : modules/filters/mod_include.c line=946 column=72
t
oken, TOKEN_ACCESS : modules/filters/mod_include.c line=84 column=5
T
OKEN_ACCESS);
1035            ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
1036            return : pass=0
r
eturn 0;
1037        }
1038        break : pass=0
b
reak;
1039    }
1040
1041    /* It's a string or regex token
1042     * Now search for the next token, which finishes this string
1043     */
1044    shift : modules/filters/mod_include.c line=949 column=16
s
hift = : pass=0
=
 0;
1045    p : modules/filters/mod_include.c line=948 column=17
p
 = : pass=0
=
 *parse : modules/filters/mod_include.c line=946 column=56
p
arse = : enter=0, leave=0
=
 token : modules/filters/mod_include.c line=946 column=72
t
oken-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=89 column=19
v
alue = : enter=0, leave=0
=
 unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched conditional operator : true=0, false=0
?
 * dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse : p : modules/filters/mod_include.c line=948 column=17
p
;
1046
1047    for : true=0, false=0
f
or (; * dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse; p : modules/filters/mod_include.c line=948 column=17
p
 = : pass=0
=
 ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse) {
1048        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
= '\\') {
1049            if : true=0, false=0
i
f (! : true=0, false=0
!
* dereference : enter=0, leave=0
*
(++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse)) {
1050                p : modules/filters/mod_include.c line=948 column=17
p
 = : pass=0
=
 * dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
1051                break : pass=0
b
reak;
1052            }
1053
1054            ++ : pass=0
+
+shift : modules/filters/mod_include.c line=949 column=16
s
hift;
1055        }
1056        else {
1057            if : true=0, false=0
i
f (unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched) {
1058                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse == : true=0, false=0
=
unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched) {
1059                    unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched = : pass=0
=
 0;
1060                    ++ : pass=0
+
+* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse;
1061                    break : pass=0
b
reak;
1062                }
1063            } else if : true=0, false=0
i
f (apr_isspace(* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse)) {
1064                break : pass=0
b
reak;
1065            }
1066            else {
1067                int found = 0;
1068
1069                switch : pass=0
s
witch (* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse) {
1070                case : true=0, false=0
c
ase '(':
1071                case : true=0, false=0
c
ase ')':
1072                case : true=0, false=0
c
ase '=':
1073                case : true=0, false=0
c
ase '!':
1074                case : true=0, false=0
c
ase '<':
1075                case : true=0, false=0
c
ase '>':
1076                    ++ : pass=0
+
+found : modules/filters/mod_include.c line=1067 column=21
f
ound;
1077                    break : pass=0
b
reak;
1078
1079                case : true=0, false=0
c
ase '|':
1080                case : true=0, false=0
c
ase '&':
1081                    if : true=0, false=0
i
f ((* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse)[] : enter=0, leave=0
[
1] == : true=0, false=0
=
* dereference : enter=0, leave=0
*
* dereference : enter=0, leave=0
*
parse : modules/filters/mod_include.c line=946 column=56
p
arse) {
1082                        ++ : pass=0
+
+found : modules/filters/mod_include.c line=1067 column=21
f
ound;
1083                    }
1084                    break : pass=0
b
reak;
1085                }
1086
1087                if : true=0, false=0
i
f (found : modules/filters/mod_include.c line=1067 column=21
f
ound) {
1088                    break : pass=0
b
reak;
1089                }
1090            }
1091        }
1092    }
1093
1094    if : true=0, false=0
i
f (unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched) {
1095        token : modules/filters/mod_include.c line=946 column=72
t
oken-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=89 column=19
v
alue = : 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(ctx : modules/filters/mod_include.c line=946 column=38
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, "");
1096    }
1097    else {
1098        apr_size_t len = p : modules/filters/mod_include.c line=948 column=17
p
 - : pass=0
-
 token : modules/filters/mod_include.c line=946 column=72
t
oken-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=89 column=19
v
alue - : pass=0
-
 shift : modules/filters/mod_include.c line=949 column=16
s
hift;
1099        char *c = apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=946 column=38
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, len : modules/filters/mod_include.c line=1098 column=20
l
en + : pass=0
+
 1);
1100
1101        p : modules/filters/mod_include.c line=948 column=17
p
 = : pass=0
=
 token : modules/filters/mod_include.c line=946 column=72
t
oken-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=89 column=19
v
alue;
1102        token : modules/filters/mod_include.c line=946 column=72
t
oken-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=89 column=19
v
alue = : enter=0, leave=0
=
 c : modules/filters/mod_include.c line=1099 column=15
c
;
1103
1104        while : true=0, false=0
w
hile (shift : modules/filters/mod_include.c line=949 column=16
s
hift-- : pass=0
-
-) {
1105            const char *e = ap_strchr_c(p : modules/filters/mod_include.c line=948 column=17
p
, '\\');
1106
1107            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(c : modules/filters/mod_include.c line=1099 column=15
c
p : modules/filters/mod_include.c line=948 column=17
p
e : modules/filters/mod_include.c line=1105 column=25
e
- : pass=0
-
p : modules/filters/mod_include.c line=948 column=17
p
);
1108            c : modules/filters/mod_include.c line=1099 column=15
c
   += : pass=0
+
e : modules/filters/mod_include.c line=1105 column=25
e
- : pass=0
-
p : modules/filters/mod_include.c line=948 column=17
p
;
1109            *c : modules/filters/mod_include.c line=1099 column=15
c
++ : pass=0
+
= : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
++ : pass=0
+
+e : modules/filters/mod_include.c line=1105 column=25
e
;
1110            len : modules/filters/mod_include.c line=1098 column=20
l
en -= : pass=0
-
e : modules/filters/mod_include.c line=1105 column=25
e
- : pass=0
-
p : modules/filters/mod_include.c line=948 column=17
p
;
1111            p : modules/filters/mod_include.c line=948 column=17
p
    = : pass=0
=
 e : modules/filters/mod_include.c line=1105 column=25
e
+ : pass=0
+
1;
1112        }
1113
1114        if : true=0, false=0
i
f (len : modules/filters/mod_include.c line=1098 column=20
l
en) {
1115            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(c : modules/filters/mod_include.c line=1099 column=15
c
p : modules/filters/mod_include.c line=948 column=17
p
len : modules/filters/mod_include.c line=1098 column=20
l
en);
1116        }
1117        c : modules/filters/mod_include.c line=1099 column=15
c
[len : modules/filters/mod_include.c line=1098 column=20
l
en] = : enter=0, leave=0
=
 '\0';
1118    }
1119
1120    return : pass=0
r
eturn unmatched : modules/filters/mod_include.c line=950 column=9
u
nmatched;
1121}
1122
1123static int parse_expr : call=0
p
arse_expr(include_ctx_t *ctx, const char *expr, int *was_error)
1124{
1125    parse_node_t *new, *root = NULL, *current = NULL;
1126    request_rec *r = ctx : modules/filters/mod_include.c line=1123 column=38
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
;
1127    request_rec *rr = NULL;
1128    const char *error = "Invalid expression \"%s\" in file %s";
1129    const char *parse = expr : modules/filters/mod_include.c line=1123 column=55
e
xpr;
1130    int was_unmatched = 0;
1131    unsigned regex = 0;
1132
1133    *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 0;
1134
1135    if : true=0, false=0
i
f (! : true=0, false=0
!
parse : modules/filters/mod_include.c line=1129 column=17
p
arse) {
1136        return : pass=0
r
eturn 0;
1137    }
1138
1139    /* Create Parse Tree */
1140    while : true=0, false=0
w
hile (1) {
1141        /* uncomment this to see how the tree a built:
1142         *
1143         * DEBUG_DUMP_TREE(ctx, root);
1144         */
1145        CREATE_NODE(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, new : modules/filters/mod_include.c line=1125 column=19
n
ew);
1146
1147        was_unmatched : modules/filters/mod_include.c line=1130 column=9
w
as_unmatched = : pass=0
=
 get_ptoken : enter=0, leave=0

get_ptoken : modules/filters/mod_include.c line=946 column=12
g
et_ptoken(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, &parse : modules/filters/mod_include.c line=1129 column=17
p
arse, &new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken,
1148                         (current : modules/filters/mod_include.c line=1125 column=39
c
urrent != : true=0, false=0
!
= NULL conditional operator : true=0, false=0
?
 &current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken : NULL));
1149        if : true=0, false=0
i
f (! : true=0, false=0
!
parse : modules/filters/mod_include.c line=1129 column=17
p
arse) {
1150            break : pass=0
b
reak;
1151        }
1152
1153        DEBUG_DUMP_UNMATCHED(ctx, was_unmatched);
1154        DEBUG_DUMP_TOKEN(ctx, &new->token);
1155
1156        if : true=0, false=0
i
f (! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent) {
1157            switch : pass=0
s
witch (new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1158            case : true=0, false=0
c
ase TOKEN_STRING:
1159            case : true=0, false=0
c
ase TOKEN_NOT:
1160            case : true=0, false=0
c
ase TOKEN_ACCESS:
1161            case : true=0, false=0
c
ase TOKEN_LBRACE:
1162                root : modules/filters/mod_include.c line=1125 column=25
r
oot = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1163                continue : pass=0
c
ontinue;
1164
1165            default : true=0, false=0
d
efault:
1166                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1126 column=18
r
error : modules/filters/mod_include.c line=1128 column=17
e
rror, expr : modules/filters/mod_include.c line=1123 column=55
e
xpr,
1167                              r : modules/filters/mod_include.c line=1126 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1168                *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 1;
1169                return : pass=0
r
eturn 0;
1170            }
1171        }
1172
1173        switch : pass=0
s
witch (new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1174        case : true=0, false=0
c
ase TOKEN_STRING:
1175            switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1176            case : true=0, false=0
c
ase TOKEN_STRING:
1177                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1178                    apr_pstrcat : enter=0, leave=0

apr_pstrcat : /usr/include/apr-1/apr_strings.h line=139 column=28
a
pr_pstrcat(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue,
1179                                * dereference : enter=0, leave=0
*
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue conditional operator : true=0, false=0
?
 " " : "",
1180                                new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, NULL);
1181                continue : pass=0
c
ontinue;
1182
1183            case : true=0, false=0
c
ase TOKEN_RE:
1184            case : true=0, false=0
c
ase TOKEN_RBRACE:
1185            case : true=0, false=0
c
ase TOKEN_GROUP:
1186                break : pass=0
b
reak;
1187
1188            default : true=0, false=0
d
efault:
1189                new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent;
1190                current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1191                continue : pass=0
c
ontinue;
1192            }
1193            break : pass=0
b
reak;
1194
1195        case : true=0, false=0
c
ase TOKEN_RE:
1196            switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1197            case : true=0, false=0
c
ase TOKEN_EQ:
1198            case : true=0, false=0
c
ase TOKEN_NE:
1199                new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent;
1200                current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1201                ++ : pass=0
+
+regex : modules/filters/mod_include.c line=1131 column=14
r
egex;
1202                continue : pass=0
c
ontinue;
1203
1204            default : true=0, false=0
d
efault:
1205                break : pass=0
b
reak;
1206            }
1207            break : pass=0
b
reak;
1208
1209        case : true=0, false=0
c
ase TOKEN_AND:
1210        case : true=0, false=0
c
ase TOKEN_OR:
1211            switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1212            case : true=0, false=0
c
ase TOKEN_STRING:
1213            case : true=0, false=0
c
ase TOKEN_RE:
1214            case : true=0, false=0
c
ase TOKEN_GROUP:
1215                current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent;
1216
1217                while : true=0, false=0
w
hile (current : modules/filters/mod_include.c line=1125 column=39
c
urrent) {
1218                    switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1219                    case : true=0, false=0
c
ase TOKEN_AND:
1220                    case : true=0, false=0
c
ase TOKEN_OR:
1221                    case : true=0, false=0
c
ase TOKEN_LBRACE:
1222                        break : pass=0
b
reak;
1223
1224                    default : true=0, false=0
d
efault:
1225                        current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent;
1226                        continue : pass=0
c
ontinue;
1227                    }
1228                    break : pass=0
b
reak;
1229                }
1230
1231                if : true=0, false=0
i
f (! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent) {
1232                    new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft = : enter=0, leave=0
=
 root : modules/filters/mod_include.c line=1125 column=25
r
oot;
1233                    root : modules/filters/mod_include.c line=1125 column=25
r
oot-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1234                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 root : modules/filters/mod_include.c line=1125 column=25
r
oot = : pass=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1235                    continue : pass=0
c
ontinue;
1236                }
1237
1238                new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight;
1239                new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1240                new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent;
1241                current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1242                continue : pass=0
c
ontinue;
1243
1244            default : true=0, false=0
d
efault:
1245                break : pass=0
b
reak;
1246            }
1247            break : pass=0
b
reak;
1248
1249        case : true=0, false=0
c
ase TOKEN_EQ:
1250        case : true=0, false=0
c
ase TOKEN_NE:
1251        case : true=0, false=0
c
ase TOKEN_GE:
1252        case : true=0, false=0
c
ase TOKEN_GT:
1253        case : true=0, false=0
c
ase TOKEN_LE:
1254        case : true=0, false=0
c
ase TOKEN_LT:
1255            if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype == : true=0, false=0
=
TOKEN_STRING : modules/filters/mod_include.c line=70 column=5
T
OKEN_STRING) {
1256                current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent;
1257
1258                if : true=0, false=0
i
f (! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent) {
1259                    new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft = : enter=0, leave=0
=
 root : modules/filters/mod_include.c line=1125 column=25
r
oot;
1260                    root : modules/filters/mod_include.c line=1125 column=25
r
oot-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1261                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 root : modules/filters/mod_include.c line=1125 column=25
r
oot = : pass=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1262                    continue : pass=0
c
ontinue;
1263                }
1264
1265                switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1266                case : true=0, false=0
c
ase TOKEN_LBRACE:
1267                case : true=0, false=0
c
ase TOKEN_AND:
1268                case : true=0, false=0
c
ase TOKEN_OR:
1269                    new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight;
1270                    new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1271                    new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent;
1272                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1273                    continue : pass=0
c
ontinue;
1274
1275                default : true=0, false=0
d
efault:
1276                    break : pass=0
b
reak;
1277                }
1278            }
1279            break : pass=0
b
reak;
1280
1281        case : true=0, false=0
c
ase TOKEN_RBRACE:
1282            while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0

current : modules/filters/mod_include.c line=1125 column=39
cTF
urrent && : true=0, false=0
&
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_LBRACE : modules/filters/mod_include.c line=78 column=5
T
OKEN_LBRACE) {
1283                current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent;
1284            }
1285
1286            if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrent) {
1287                TYPE_TOKEN(&current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken, TOKEN_GROUP : modules/filters/mod_include.c line=79 column=5
T
OKEN_GROUP);
1288                continue : pass=0
c
ontinue;
1289            }
1290
1291            error : modules/filters/mod_include.c line=1128 column=17
e
rror = : pass=0
=
 "Unmatched ')' in \"%s\" in file %s";
1292            break : pass=0
b
reak;
1293
1294        case : true=0, false=0
c
ase TOKEN_NOT:
1295        case : true=0, false=0
c
ase TOKEN_ACCESS:
1296        case : true=0, false=0
c
ase TOKEN_LBRACE:
1297            switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1298            case : true=0, false=0
c
ase TOKEN_STRING:
1299            case : true=0, false=0
c
ase TOKEN_RE:
1300            case : true=0, false=0
c
ase TOKEN_RBRACE:
1301            case : true=0, false=0
c
ase TOKEN_GROUP:
1302                break : pass=0
b
reak;
1303
1304            default : true=0, false=0
d
efault:
1305                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight = : enter=0, leave=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1306                new : modules/filters/mod_include.c line=1125 column=19
n
ew-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent;
1307                current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 new : modules/filters/mod_include.c line=1125 column=19
n
ew;
1308                continue : pass=0
c
ontinue;
1309            }
1310            break : pass=0
b
reak;
1311
1312        default : true=0, false=0
d
efault:
1313            break : pass=0
b
reak;
1314        }
1315
1316        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1126 column=18
r
error : modules/filters/mod_include.c line=1128 column=17
e
rror, expr : modules/filters/mod_include.c line=1123 column=55
e
xpr, r : modules/filters/mod_include.c line=1126 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1317        *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 1;
1318        return : pass=0
r
eturn 0;
1319    }
1320
1321    DEBUG_DUMP_TREE(ctx, root);
1322
1323    /* Evaluate Parse Tree */
1324    current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 root : modules/filters/mod_include.c line=1125 column=25
r
oot;
1325    error : modules/filters/mod_include.c line=1128 column=17
e
rror = : pass=0
=
 NULL;
1326    while : true=0, false=0
w
hile (current : modules/filters/mod_include.c line=1125 column=39
c
urrent) {
1327        switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1328        case : true=0, false=0
c
ase TOKEN_STRING:
1329            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1330                ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, NULL, 0,
1331                                    SSI_EXPAND_DROP_NAME);
1332            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 ! : true=0, false=0
!
! : true=0, false=0
!
* dereference : enter=0, leave=0
*
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue;
1333            break : pass=0
b
reak;
1334
1335        case : true=0, false=0
c
ase TOKEN_AND:
1336        case : true=0, false=0
c
ase TOKEN_OR:
1337            if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight) {
1338                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1126 column=18
r
,
1339                              "Invalid expression \"%s\" in file %s",
1340                              expr : modules/filters/mod_include.c line=1123 column=55
e
xpr, r : modules/filters/mod_include.c line=1126 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1341                *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 1;
1342                return : pass=0
r
eturn 0;
1343            }
1344
1345            if : true=0, false=0
i
f (! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one) {
1346                switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1347                case : true=0, false=0
c
ase TOKEN_STRING:
1348                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1349                        ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue,
1350                                            NULL, 0, SSI_EXPAND_DROP_NAME);
1351                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 ! : true=0, false=0
!
! : true=0, false=0
!
* dereference : enter=0, leave=0
*
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue;
1352                    DEBUG_DUMP_EVAL(ctx, current->left);
1353                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one = : enter=0, leave=0
=
 1;
1354                    break : pass=0
b
reak;
1355
1356                default : true=0, false=0
d
efault:
1357                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft;
1358                    continue : pass=0
c
ontinue;
1359                }
1360            }
1361
1362            /* short circuit evaluation */
1363            if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
regex : modules/filters/mod_include.c line=1131 column=14
r
egex && : true=0, false=0
&
&
1364                ((current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
TOKEN_AND : modules/filters/mod_include.c line=72 column=5
T
OKEN_AND && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue) || : true=0, false=0
|
|
1365                (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
TOKEN_OR : modules/filters/mod_include.c line=73 column=5
T
OKEN_OR && : true=0, false=0
&
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eftMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>value : modules/filters/mod_include.c line=100 column=9
v
alue))) {
1366                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue;
1367            }
1368            else {
1369                if : true=0, false=0
i
f (! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one) {
1370                    switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1371                    case : true=0, false=0
c
ase TOKEN_STRING:
1372                        current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1373                            ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx,current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue,
1374                                                NULL, 0, SSI_EXPAND_DROP_NAME);
1375                        current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 ! : true=0, false=0
!
! : true=0, false=0
!
* dereference : enter=0, leave=0
*
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue;
1376                        DEBUG_DUMP_EVAL(ctx, current->right);
1377                        current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one = : enter=0, leave=0
=
 1;
1378                        break : pass=0
b
reak;
1379
1380                    default : true=0, false=0
d
efault:
1381                        current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight;
1382                        continue : pass=0
c
ontinue;
1383                    }
1384                }
1385
1386                if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype == : true=0, false=0
=
TOKEN_AND : modules/filters/mod_include.c line=72 column=5
T
OKEN_AND) {
1387                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eftMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>value : modules/filters/mod_include.c line=100 column=9
v
alue && : true=0, false=0
&
&
1388                                     current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ightMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>value : modules/filters/mod_include.c line=100 column=9
v
alue;
1389                }
1390                else {
1391                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eftMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>value : modules/filters/mod_include.c line=100 column=9
v
alue || : true=0, false=0
|
|
1392                                     current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ightMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>value : modules/filters/mod_include.c line=100 column=9
v
alue;
1393                }
1394            }
1395            break : pass=0
b
reak;
1396
1397        case : true=0, false=0
c
ase TOKEN_EQ:
1398        case : true=0, false=0
c
ase TOKEN_NE:
1399            if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight || : true=0, false=0
|
|
1400                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_STRING : modules/filters/mod_include.c line=70 column=5
T
OKEN_STRING || : true=0, false=0
|
|
1401                (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_STRING : modules/filters/mod_include.c line=70 column=5
T
OKEN_STRING && : true=0, false=0
&
&
1402                 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_RE : modules/filters/mod_include.c line=71 column=5
T
OKEN_RE)) {
1403                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1126 column=18
r
,
1404                            "Invalid expression \"%s\" in file %s",
1405                            expr : modules/filters/mod_include.c line=1123 column=55
e
xpr, r : modules/filters/mod_include.c line=1126 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1406                *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 1;
1407                return : pass=0
r
eturn 0;
1408            }
1409            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1410                ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, NULL, 0,
1411                                    SSI_EXPAND_DROP_NAME);
1412            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1413                ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, NULL, 0,
1414                                    SSI_EXPAND_DROP_NAME);
1415
1416            if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype == : true=0, false=0
=
TOKEN_RE : modules/filters/mod_include.c line=71 column=5
T
OKEN_RE) {
1417                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 re_check : enter=0, leave=0

re_check : modules/filters/mod_include.c line=919 column=23
r
e_check(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue,
1418                                          current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue);
1419                -- : pass=0
-
-regex : modules/filters/mod_include.c line=1131 column=14
r
egex;
1420            }
1421            else {
1422                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 ! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue,
1423                                         current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue);
1424            }
1425
1426            if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype == : true=0, false=0
=
TOKEN_NE : modules/filters/mod_include.c line=76 column=5
T
OKEN_NE) {
1427                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 ! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue;
1428            }
1429            break : pass=0
b
reak;
1430
1431        case : true=0, false=0
c
ase TOKEN_GE:
1432        case : true=0, false=0
c
ase TOKEN_GT:
1433        case : true=0, false=0
c
ase TOKEN_LE:
1434        case : true=0, false=0
c
ase TOKEN_LT:
1435            if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight || : true=0, false=0
|
|
1436                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_STRING : modules/filters/mod_include.c line=70 column=5
T
OKEN_STRING || : true=0, false=0
|
|
1437                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_STRING : modules/filters/mod_include.c line=70 column=5
T
OKEN_STRING) {
1438                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1126 column=18
r
,
1439                              "Invalid expression \"%s\" in file %s",
1440                              expr : modules/filters/mod_include.c line=1123 column=55
e
xpr, r : modules/filters/mod_include.c line=1126 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1441                *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 1;
1442                return : pass=0
r
eturn 0;
1443            }
1444
1445            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1446                ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, NULL, 0,
1447                                    SSI_EXPAND_DROP_NAME);
1448            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1449                ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, NULL, 0,
1450                                    SSI_EXPAND_DROP_NAME);
1451
1452            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>left : modules/filters/mod_include.c line=97 column=24
l
eft-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue,
1453                                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue);
1454
1455            switch : pass=0
s
witch (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype) {
1456            case : true=0, false=0
c
ase TOKEN_GE: current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue >= : true=0, false=0
>
= 0; break : pass=0
b
reak;
1457            case : true=0, false=0
c
ase TOKEN_GT: current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue > : true=0, false=0
>
  0; break : pass=0
b
reak;
1458            case : true=0, false=0
c
ase TOKEN_LE: current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue <= : true=0, false=0
<
= 0; break : pass=0
b
reak;
1459            case : true=0, false=0
c
ase TOKEN_LT: current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue < : true=0, false=0
<
  0; break : pass=0
b
reak;
1460            default : true=0, false=0
d
efault: current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 0; break : pass=0
b
reak; /* should not happen */
1461            }
1462            break : pass=0
b
reak;
1463
1464        case : true=0, false=0
c
ase TOKEN_NOT:
1465        case : true=0, false=0
c
ase TOKEN_GROUP:
1466            if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight) {
1467                if : true=0, false=0
i
f (! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one) {
1468                    current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight;
1469                    continue : pass=0
c
ontinue;
1470                }
1471                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue;
1472            }
1473            else {
1474                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 1;
1475            }
1476
1477            if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype == : true=0, false=0
=
TOKEN_NOT : modules/filters/mod_include.c line=74 column=5
T
OKEN_NOT) {
1478                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 ! : true=0, false=0
!
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue;
1479            }
1480            break : pass=0
b
reak;
1481
1482        case : true=0, false=0
c
ase TOKEN_ACCESS:
1483            if : true=0, false=0
i
f (current : modules/filters/mod_include.c line=1125 column=39
c
urrentMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>left : modules/filters/mod_include.c line=97 column=24
l
eft || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight || : true=0, false=0
|
|
1484                (current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_STRING : modules/filters/mod_include.c line=70 column=5
T
OKEN_STRING && : true=0, false=0
&
&
1485                 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.type : modules/filters/mod_include.c line=88 column=19
t
ype != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
TOKEN_RE : modules/filters/mod_include.c line=71 column=5
T
OKEN_RE)) {
1486                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1126 column=18
r
,
1487                            "Invalid expression \"%s\" in file %s: Token '-A' must be followed by a URI string.",
1488                            expr : modules/filters/mod_include.c line=1123 column=55
e
xpr, r : modules/filters/mod_include.c line=1126 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1489                *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 1;
1490                return : pass=0
r
eturn 0;
1491            }
1492            current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue = : pass=0
=
1493                ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1123 column=38
c
tx, current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, NULL, 0,
1494                                    SSI_EXPAND_DROP_NAME);
1495            rr : modules/filters/mod_include.c line=1127 column=18
r
= : pass=0
=
 ap_sub_req_lookup_uri : enter=0, leave=0

ap_sub_req_lookup_uri : include/http_request.h line=71 column=27
a
p_sub_req_lookup_uri(current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue, r : modules/filters/mod_include.c line=1126 column=18
r
, NULL);
1496            /* 400 and higher are considered access denied */
1497            if : true=0, false=0
i
f (rr : modules/filters/mod_include.c line=1127 column=18
r
r-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus < : true=0, false=0
<
 HTTP_BAD_REQUEST) {
1498                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 1;
1499            }
1500            else {
1501                current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue = : enter=0, leave=0
=
 0;
1502                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_DEBUG, rr : modules/filters/mod_include.c line=1127 column=18
r
r-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus, r : modules/filters/mod_include.c line=1126 column=18
r
1503                              "mod_include: The tested "
1504                              "subrequest -A \"%s\" returned an error code.",
1505                              current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>right : modules/filters/mod_include.c line=98 column=24
r
ight-> : enter=0, leave=0
-
>token : modules/filters/mod_include.c line=99 column=13
t
oken.value : modules/filters/mod_include.c line=89 column=19
v
alue);
1506            }
1507            ap_destroy_sub_req : enter=0, leave=0

ap_destroy_sub_req : include/http_request.h line=144 column=18
a
p_destroy_sub_req(rr : modules/filters/mod_include.c line=1127 column=18
r
r);
1508            break : pass=0
b
reak;
1509
1510        case : true=0, false=0
c
ase TOKEN_RE:
1511            if : true=0, false=0
i
f (! : true=0, false=0
!
error : modules/filters/mod_include.c line=1128 column=17
e
rror) {
1512                error : modules/filters/mod_include.c line=1128 column=17
e
rror = : pass=0
=
 "No operator before regex in expr \"%s\" in file %s";
1513            }
1514        case : true=0, false=0
c
ase TOKEN_LBRACE:
1515            if : true=0, false=0
i
f (! : true=0, false=0
!
error : modules/filters/mod_include.c line=1128 column=17
e
rror) {
1516                error : modules/filters/mod_include.c line=1128 column=17
e
rror = : pass=0
=
 "Unmatched '(' in \"%s\" in file %s";
1517            }
1518        default : true=0, false=0
d
efault:
1519            if : true=0, false=0
i
f (! : true=0, false=0
!
error : modules/filters/mod_include.c line=1128 column=17
e
rror) {
1520                error : modules/filters/mod_include.c line=1128 column=17
e
rror = : pass=0
=
 "internal parser error in \"%s\" in file %s";
1521            }
1522
1523            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1126 column=18
r
error : modules/filters/mod_include.c line=1128 column=17
e
rror, expr : modules/filters/mod_include.c line=1123 column=55
e
xpr,r : modules/filters/mod_include.c line=1126 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1524            *was_error : modules/filters/mod_include.c line=1123 column=66
w
as_error = : enter=0, leave=0
=
 1;
1525            return : pass=0
r
eturn 0;
1526        }
1527
1528        DEBUG_DUMP_EVAL(ctx, current);
1529        current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>done : modules/filters/mod_include.c line=101 column=9
d
one = : enter=0, leave=0
=
 1;
1530        current : modules/filters/mod_include.c line=1125 column=39
c
urrent = : pass=0
=
 current : modules/filters/mod_include.c line=1125 column=39
c
urrent-> : enter=0, leave=0
-
>parent : modules/filters/mod_include.c line=96 column=24
p
arent;
1531    }
1532
1533    return : pass=0
r
eturn (root : modules/filters/mod_include.c line=1125 column=25
r
oot conditional operator : true=0, false=0
?
 root : modules/filters/mod_include.c line=1125 column=25
r
oot-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=100 column=9
v
alue : 0);
1534}
1535
1536
1537/*
1538 * +-------------------------------------------------------+
1539 * |                                                       |
1540 * |                    Action Handlers
1541 * |                                                       |
1542 * +-------------------------------------------------------+
1543 */
1544
1545/*
1546 * Extract the next tag name and value.
1547 * If there are no more tags, set the tag name to NULL.
1548 * The tag value is html decoded if dodecode is non-zero.
1549 * The tag value may be NULL if there is no tag value..
1550 */
1551static void ap_ssi_get_tag_and_value : call=0
a
p_ssi_get_tag_and_value(include_ctx_t *ctx, char **tag,
1552                                     char **tag_val, int dodecode)
1553{
1554    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1551 column=53
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv) {
1555        *tag : modules/filters/mod_include.c line=1551 column=65
t
ag = : enter=0, leave=0
=
 NULL;
1556        *tag_val : modules/filters/mod_include.c line=1552 column=45
t
ag_val = : enter=0, leave=0
=
 NULL;
1557
1558        return : pass=0
r
eturn;
1559    }
1560
1561    *tag_val : modules/filters/mod_include.c line=1552 column=45
t
ag_val = : enter=0, leave=0
=
 ctx : modules/filters/mod_include.c line=1551 column=53
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=154 column=23
v
alue;
1562    *tag : modules/filters/mod_include.c line=1551 column=65
t
ag = : enter=0, leave=0
=
 ctx : modules/filters/mod_include.c line=1551 column=53
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv-> : enter=0, leave=0
-
>name : modules/filters/mod_include.c line=152 column=23
n
ame;
1563
1564    ctx : modules/filters/mod_include.c line=1551 column=53
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv = : enter=0, leave=0
=
 ctx : modules/filters/mod_include.c line=1551 column=53
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=151 column=23
n
ext;
1565
1566    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

dodecode : modules/filters/mod_include.c line=1552 column=58
dTF
odecode && : true=0, false=0
&
MC/DC independently affect : true=0, false=0
* dereference : enter=0, leave=0
*TF
tag_val : modules/filters/mod_include.c line=1552 column=45
t
ag_val) {
1567        decodehtml : enter=0, leave=0

decodehtml : modules/filters/mod_include.c line=499 column=13
d
ecodehtml(* dereference : enter=0, leave=0
*
tag_val : modules/filters/mod_include.c line=1552 column=45
t
ag_val);
1568    }
1569
1570    return : pass=0
r
eturn;
1571}
1572
1573static int find_file : call=0
f
ind_file(request_rec *r, const char *directive, const char *tag,
1574                     char *tag_val, apr_finfo_t *finfo)
1575{
1576    char *to_send = tag_val : modules/filters/mod_include.c line=1574 column=28
t
ag_val;
1577    request_rec *rr = NULL;
1578    int ret=0;
1579    char *error_fmt = NULL;
1580    apr_status_t rv = APR_SUCCESS;
1581
1582    if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1573 column=73
t
ag, "file")) {
1583        char *newpath;
1584
1585        /* be safe; only files in this directory or below allowed */
1586        rv : modules/filters/mod_include.c line=1580 column=18
r
= : pass=0
=
 apr_filepath_merge : enter=0, leave=0

apr_filepath_merge : /usr/include/apr-1/apr_file_info.h line=354 column=27
a
pr_filepath_merge(&newpath : modules/filters/mod_include.c line=1583 column=15
n
ewpath, NULL, tag_val : modules/filters/mod_include.c line=1574 column=28
t
ag_val,
1587                                APR_FILEPATH_SECUREROOTTEST | : pass=0
|
1588                                APR_FILEPATH_NOTABSOLUTE, r : modules/filters/mod_include.c line=1573 column=35
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool);
1589
1590        if : true=0, false=0
i
f (rv : modules/filters/mod_include.c line=1580 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
1591            error_fmt : modules/filters/mod_include.c line=1579 column=11
e
rror_fmt = : pass=0
=
 "unable to access file \"%s\" "
1592                        "in parsed file %s";
1593        }
1594        else {
1595            /* note: it is okay to pass NULL for the "next filter" since
1596               we never attempt to "run" this sub request. */
1597            rr : modules/filters/mod_include.c line=1577 column=18
r
= : pass=0
=
 ap_sub_req_lookup_file : enter=0, leave=0

ap_sub_req_lookup_file : include/http_request.h line=84 column=27
a
p_sub_req_lookup_file(newpath : modules/filters/mod_include.c line=1583 column=15
n
ewpath, r : modules/filters/mod_include.c line=1573 column=35
r
, NULL);
1598
1599            if : true=0, false=0
i
f (rr : modules/filters/mod_include.c line=1577 column=18
r
r-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= HTTP_OK && : true=0, false=0
&
rr : modules/filters/mod_include.c line=1577 column=18
r
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
MC/DC independently affect : true=0, false=0
!TF
= 0) {
1600                to_send : modules/filters/mod_include.c line=1576 column=11
t
o_send = : pass=0
=
 rr : modules/filters/mod_include.c line=1577 column=18
r
r-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename;
1601                if : true=0, false=0
i
f ((rv : modules/filters/mod_include.c line=1580 column=18
r
= : pass=0
=
 apr_stat : enter=0, leave=0

apr_stat : /usr/include/apr-1/apr_file_info.h line=229 column=27
a
pr_stat(finfo : modules/filters/mod_include.c line=1574 column=50
f
info, to_send : modules/filters/mod_include.c line=1576 column=11
t
o_send,
1602                    APR_FINFO_GPROT | : pass=0
|
 APR_FINFO_MIN, rr : modules/filters/mod_include.c line=1577 column=18
r
r-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool)) != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS
1603                    && : true=0, false=0
&
rv : modules/filters/mod_include.c line=1580 column=18
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_INCOMPLETE) {
1604                    error_fmt : modules/filters/mod_include.c line=1579 column=11
e
rror_fmt = : pass=0
=
 "unable to get information about \"%s\" "
1605                        "in parsed file %s";
1606                }
1607            }
1608            else {
1609                error_fmt : modules/filters/mod_include.c line=1579 column=11
e
rror_fmt = : pass=0
=
 "unable to lookup information about \"%s\" "
1610                            "in parsed file %s";
1611            }
1612        }
1613
1614        if : true=0, false=0
i
f (error_fmt : modules/filters/mod_include.c line=1579 column=11
e
rror_fmt) {
1615            ret : modules/filters/mod_include.c line=1578 column=9
r
et = : pass=0
=
 -1;
1616            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR,
1617                          rv : modules/filters/mod_include.c line=1580 column=18
r
v, r : modules/filters/mod_include.c line=1573 column=35
r
error_fmt : modules/filters/mod_include.c line=1579 column=11
e
rror_fmt, to_send : modules/filters/mod_include.c line=1576 column=11
t
o_send, r : modules/filters/mod_include.c line=1573 column=35
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1618        }
1619
1620        if : true=0, false=0
i
f (rr : modules/filters/mod_include.c line=1577 column=18
r
r) ap_destroy_sub_req : enter=0, leave=0

ap_destroy_sub_req : include/http_request.h line=144 column=18
a
p_destroy_sub_req(rr : modules/filters/mod_include.c line=1577 column=18
r
r);
1621
1622        return : pass=0
r
eturn ret : modules/filters/mod_include.c line=1578 column=9
r
et;
1623    }
1624    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1573 column=73
t
ag, "virtual")) {
1625        /* note: it is okay to pass NULL for the "next filter" since
1626           we never attempt to "run" this sub request. */
1627        rr : modules/filters/mod_include.c line=1577 column=18
r
= : pass=0
=
 ap_sub_req_lookup_uri : enter=0, leave=0

ap_sub_req_lookup_uri : include/http_request.h line=71 column=27
a
p_sub_req_lookup_uri(tag_val : modules/filters/mod_include.c line=1574 column=28
t
ag_val, r : modules/filters/mod_include.c line=1573 column=35
r
, NULL);
1628
1629        if : true=0, false=0
i
f (rr : modules/filters/mod_include.c line=1577 column=18
r
r-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= HTTP_OK && : true=0, false=0
&
rr : modules/filters/mod_include.c line=1577 column=18
r
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
MC/DC independently affect : true=0, false=0
!TF
= 0) {
1630            memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy((char *) finfo : modules/filters/mod_include.c line=1574 column=50
f
info, (const char *) &rr : modules/filters/mod_include.c line=1577 column=18
r
r-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info,
1631                   sizeof(rr->finfo));
1632            ap_destroy_sub_req : enter=0, leave=0

ap_destroy_sub_req : include/http_request.h line=144 column=18
a
p_destroy_sub_req(rr : modules/filters/mod_include.c line=1577 column=18
r
r);
1633            return : pass=0
r
eturn 0;
1634        }
1635        else {
1636            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1573 column=35
r
, "unable to get "
1637                          "information about \"%s\" in parsed file %s",
1638                          tag_val : modules/filters/mod_include.c line=1574 column=28
t
ag_val, r : modules/filters/mod_include.c line=1573 column=35
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1639            ap_destroy_sub_req : enter=0, leave=0

ap_destroy_sub_req : include/http_request.h line=144 column=18
a
p_destroy_sub_req(rr : modules/filters/mod_include.c line=1577 column=18
r
r);
1640            return : pass=0
r
eturn -1;
1641        }
1642    }
1643    else {
1644        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1573 column=35
r
, "unknown parameter \"%s\" "
1645                      "to tag %s in %s", tag : modules/filters/mod_include.c line=1573 column=73
t
ag, directive : modules/filters/mod_include.c line=1573 column=50
d
irective, r : modules/filters/mod_include.c line=1573 column=35
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1646        return : pass=0
r
eturn -1;
1647    }
1648}
1649
1650/*
1651 * <!--#include virtual|file="..." [virtual|file="..."] ... -->
1652 */
1653static apr_status_t handle_include : call=0
h
andle_include(include_ctx_t *ctx, ap_filter_t *f,
1654                                   apr_bucket_brigade *bb)
1655{
1656    request_rec *r = f : modules/filters/mod_include.c line=1653 column=69
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
1657
1658    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1653 column=51
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1659        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
1660                      (ctx : modules/filters/mod_include.c line=1653 column=51
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
1661                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
1662                      0, r : modules/filters/mod_include.c line=1656 column=18
r
, "missing argument for include element in %s",
1663                      r : modules/filters/mod_include.c line=1656 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1664    }
1665
1666    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=1653 column=51
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
1667        return : pass=0
r
eturn APR_SUCCESS;
1668    }
1669
1670    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1653 column=51
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1671        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1653 column=51
c
tx, f : modules/filters/mod_include.c line=1653 column=69
f
bb : modules/filters/mod_include.c line=1654 column=56
b
b);
1672        return : pass=0
r
eturn APR_SUCCESS;
1673    }
1674
1675    while : true=0, false=0
w
hile (1) {
1676        char *tag     = NULL;
1677        char *tag_val = NULL;
1678        request_rec *rr = NULL;
1679        char *error_fmt = NULL;
1680        char *parsed_string;
1681
1682        ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=1653 column=51
c
tx, &tag : modules/filters/mod_include.c line=1676 column=15
t
ag, &tag_val : modules/filters/mod_include.c line=1677 column=15
t
ag_val, SSI_VALUE_DECODED);
1683        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag : modules/filters/mod_include.c line=1676 column=15
t
ag || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag_val : modules/filters/mod_include.c line=1677 column=15
t
ag_val) {
1684            break : pass=0
b
reak;
1685        }
1686
1687        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
sTF
trcmp(tag : modules/filters/mod_include.c line=1676 column=15
t
ag, "virtual") && : true=0, false=0
&
MC/DC independently affect : true=0, false=0
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
sTF
trcmp(tag : modules/filters/mod_include.c line=1676 column=15
t
ag, "file")) {
1688            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1656 column=18
r
, "unknown parameter "
1689                          "\"%s\" to tag include in %s", tag : modules/filters/mod_include.c line=1676 column=15
t
ag, r : modules/filters/mod_include.c line=1656 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1690            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1653 column=51
c
tx, f : modules/filters/mod_include.c line=1653 column=69
f
bb : modules/filters/mod_include.c line=1654 column=56
b
b);
1691            break : pass=0
b
reak;
1692        }
1693
1694        parsed_string : modules/filters/mod_include.c line=1680 column=15
p
arsed_string = : pass=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1653 column=51
c
tx, tag_val : modules/filters/mod_include.c line=1677 column=15
t
ag_val, NULL, 0,
1695                                            SSI_EXPAND_DROP_NAME);
1696        if : true=0, false=0
i
f (tag : modules/filters/mod_include.c line=1676 column=15
t
ag[] : enter=0, leave=0
[
0] == : true=0, false=0
=
= 'f') {
1697            char *newpath;
1698            apr_status_t rv;
1699
1700            /* be safe; only files in this directory or below allowed */
1701            rv : modules/filters/mod_include.c line=1698 column=26
r
= : pass=0
=
 apr_filepath_merge : enter=0, leave=0

apr_filepath_merge : /usr/include/apr-1/apr_file_info.h line=354 column=27
a
pr_filepath_merge(&newpath : modules/filters/mod_include.c line=1697 column=19
n
ewpath, NULL, parsed_string : modules/filters/mod_include.c line=1680 column=15
p
arsed_string,
1702                                    APR_FILEPATH_SECUREROOTTEST | : pass=0
|
1703                                    APR_FILEPATH_NOTABSOLUTE, ctx : modules/filters/mod_include.c line=1653 column=51
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool);
1704
1705            if : true=0, false=0
i
f (rv : modules/filters/mod_include.c line=1698 column=26
r
!= : true=0, false=0
!
= APR_SUCCESS) {
1706                error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt = : pass=0
=
 "unable to include file \"%s\" in parsed file %s";
1707            }
1708            else {
1709                rr : modules/filters/mod_include.c line=1678 column=22
r
= : pass=0
=
 ap_sub_req_lookup_file : enter=0, leave=0

ap_sub_req_lookup_file : include/http_request.h line=84 column=27
a
p_sub_req_lookup_file(newpath : modules/filters/mod_include.c line=1697 column=19
n
ewpath, r : modules/filters/mod_include.c line=1656 column=18
r
f : modules/filters/mod_include.c line=1653 column=69
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext);
1710            }
1711        }
1712        else {
1713            rr : modules/filters/mod_include.c line=1678 column=22
r
= : pass=0
=
 ap_sub_req_lookup_uri : enter=0, leave=0

ap_sub_req_lookup_uri : include/http_request.h line=71 column=27
a
p_sub_req_lookup_uri(parsed_string : modules/filters/mod_include.c line=1680 column=15
p
arsed_string, r : modules/filters/mod_include.c line=1656 column=18
r
f : modules/filters/mod_include.c line=1653 column=69
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext);
1714        }
1715
1716        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt && : true=0, false=0
&
rr : modules/filters/mod_include.c line=1678 column=22
r
r-> : enter=0, leave=0
-
>status : include/httpd.h line=822 column=9
s
tatus != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= HTTP_OK) {
1717            error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt = : pass=0
=
 "unable to include \"%s\" in parsed file %s";
1718        }
1719
1720        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt && : true=0, false=0
&
& (ctx : modules/filters/mod_include.c line=1653 column=51
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_NO_EXEC) && : true=0, false=0
&
&
1721            rr : modules/filters/mod_include.c line=1678 column=22
r
rMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>content_type : include/httpd.h line=917 column=17
c
ontent_type && : true=0, false=0
&
MC/DC independently affect : true=0, false=0
strncmp : enter=0, leave=0

strncmp : /usr/include/string.h line=146 column=12
sTF
trncmp(rr : modules/filters/mod_include.c line=1678 column=22
r
r-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type, "text/", 5)) {
1722
1723            error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt = : pass=0
=
 "unable to include potential exec \"%s\" in parsed "
1724                        "file %s";
1725        }
1726
1727        /* See the Kludge in includes_filter for why.
1728         * Basically, it puts a bread crumb in here, then looks
1729         * for the crumb later to see if its been here.
1730         */
1731        if : true=0, false=0
i
f (rr : modules/filters/mod_include.c line=1678 column=22
r
r) {
1732            ap_set_module_config(rr : modules/filters/mod_include.c line=1678 column=22
r
r-> : enter=0, leave=0
-
>request_config : include/httpd.h line=979 column=30
r
equest_config, &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module, r : modules/filters/mod_include.c line=1656 column=18
r
);
1733        }
1734
1735        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt && : true=0, false=0
&
MC/DC independently affect : true=0, false=0
ap_run_sub_req : enter=0, leave=0

ap_run_sub_req : include/http_request.h line=138 column=17
aTF
p_run_sub_req(rr : modules/filters/mod_include.c line=1678 column=22
r
r)) {
1736            error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt = : pass=0
=
 "unable to include \"%s\" in parsed file %s";
1737        }
1738
1739        if : true=0, false=0
i
f (error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt) {
1740            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1656 column=18
r
error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt, tag_val : modules/filters/mod_include.c line=1677 column=15
t
ag_val,
1741                          r : modules/filters/mod_include.c line=1656 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1742            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1653 column=51
c
tx, f : modules/filters/mod_include.c line=1653 column=69
f
bb : modules/filters/mod_include.c line=1654 column=56
b
b);
1743        }
1744
1745        /* Do *not* destroy the subrequest here; it may have allocated
1746         * variables in this r->subprocess_env in the subrequest's
1747         * r->pool, so that pool must survive as long as this request.
1748         * Yes, this is a memory leak. */
1749
1750        if : true=0, false=0
i
f (error_fmt : modules/filters/mod_include.c line=1679 column=15
e
rror_fmt) {
1751            break : pass=0
b
reak;
1752        }
1753    }
1754
1755    return : pass=0
r
eturn APR_SUCCESS;
1756}
1757
1758/*
1759 * <!--#echo [encoding="..."] var="..." [encoding="..."] var="..." ... -->
1760 */
1761static apr_status_t handle_echo : call=0
h
andle_echo(include_ctx_t *ctx, ap_filter_t *f,
1762                                apr_bucket_brigade *bb)
1763{
1764    enum {E_NONE, E_URL, E_ENTITY} encode;
1765    request_rec *r = f : modules/filters/mod_include.c line=1761 column=66
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
1766
1767    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1768        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
1769                      (ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
1770                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
1771                      0, r : modules/filters/mod_include.c line=1765 column=18
r
, "missing argument for echo element in %s",
1772                      r : modules/filters/mod_include.c line=1765 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1773    }
1774
1775    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
1776        return : pass=0
r
eturn APR_SUCCESS;
1777    }
1778
1779    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1780        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx, f : modules/filters/mod_include.c line=1761 column=66
f
bb : modules/filters/mod_include.c line=1762 column=53
b
b);
1781        return : pass=0
r
eturn APR_SUCCESS;
1782    }
1783
1784    encode : modules/filters/mod_include.c line=1764 column=36
e
ncode = : pass=0
=
 E_ENTITY : modules/filters/mod_include.c line=1764 column=26
E
_ENTITY;
1785
1786    while : true=0, false=0
w
hile (1) {
1787        char *tag = NULL;
1788        char *tag_val = NULL;
1789
1790        ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx, &tag : modules/filters/mod_include.c line=1787 column=15
t
ag, &tag_val : modules/filters/mod_include.c line=1788 column=15
t
ag_val, SSI_VALUE_DECODED);
1791        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag : modules/filters/mod_include.c line=1787 column=15
t
ag || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag_val : modules/filters/mod_include.c line=1788 column=15
t
ag_val) {
1792            break : pass=0
b
reak;
1793        }
1794
1795        if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1787 column=15
t
ag, "var")) {
1796            const char *val;
1797            const char *echo_text = NULL;
1798            apr_size_t e_len;
1799
1800            val : modules/filters/mod_include.c line=1796 column=25
v
al = : pass=0
=
 get_include_var : enter=0, leave=0

get_include_var : modules/filters/mod_include.c line=644 column=20
g
et_include_var(ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx, tag_val : modules/filters/mod_include.c line=1788 column=15
t
ag_val, NULL,
1801                                                      0, SSI_EXPAND_DROP_NAME),
1802                                  ctx : modules/filters/mod_include.c line=1761 column=48
c
tx);
1803
1804            if : true=0, false=0
i
f (val : modules/filters/mod_include.c line=1796 column=25
v
al) {
1805                switch : pass=0
s
witch(encode : modules/filters/mod_include.c line=1764 column=36
e
ncode) {
1806                case : true=0, false=0
c
ase E_NONE:
1807                    echo_text : modules/filters/mod_include.c line=1797 column=25
e
cho_text = : pass=0
=
 val : modules/filters/mod_include.c line=1796 column=25
v
al;
1808                    break : pass=0
b
reak;
1809                case : true=0, false=0
c
ase E_URL:
1810                    echo_text : modules/filters/mod_include.c line=1797 column=25
e
cho_text = : pass=0
=
 ap_escape_uri(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, val : modules/filters/mod_include.c line=1796 column=25
v
al);
1811                    break : pass=0
b
reak;
1812                case : true=0, false=0
c
ase E_ENTITY:
1813                    /* PR#25202: escape anything non-ascii here */
1814                    echo_text : modules/filters/mod_include.c line=1797 column=25
e
cho_text = : pass=0
=
 ap_escape_html2 : enter=0, leave=0

ap_escape_html2 : include/httpd.h line=1520 column=20
a
p_escape_html2(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, val : modules/filters/mod_include.c line=1796 column=25
v
al, 1);
1815                    break : pass=0
b
reak;
1816                }
1817
1818                e_len : modules/filters/mod_include.c line=1798 column=24
e
_len = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(echo_text : modules/filters/mod_include.c line=1797 column=25
e
cho_text);
1819            }
1820            else {
1821                echo_text : modules/filters/mod_include.c line=1797 column=25
e
cho_text = : pass=0
=
 ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>undefined_echo : modules/filters/mod_include.c line=195 column=19
u
ndefined_echo;
1822                e_len : modules/filters/mod_include.c line=1798 column=24
e
_len = : pass=0
=
 ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>undefined_echo_len : modules/filters/mod_include.c line=196 column=19
u
ndefined_echo_len;
1823            }
1824
1825            APR_BRIGADE_INSERT_TAIL(bb : modules/filters/mod_include.c line=1762 column=53
b
b, apr_bucket_pool_create : enter=0, leave=0

apr_bucket_pool_create : /usr/include/apr-1/apr_buckets.h line=1373 column=27
a
pr_bucket_pool_create(
1826                                    apr_pmemdup : enter=0, leave=0

apr_pmemdup : /usr/include/apr-1/apr_strings.h line=131 column=21
a
pr_pmemdup(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, echo_text : modules/filters/mod_include.c line=1797 column=25
e
cho_text, e_len : modules/filters/mod_include.c line=1798 column=24
e
_len),
1827                                    e_len : modules/filters/mod_include.c line=1798 column=24
e
_len, ctx : modules/filters/mod_include.c line=1761 column=48
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, f : modules/filters/mod_include.c line=1761 column=66
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc));
1828        }
1829        else if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1787 column=15
t
ag, "encoding")) {
1830            if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(tag_val : modules/filters/mod_include.c line=1788 column=15
t
ag_val, "none")) {
1831                encode : modules/filters/mod_include.c line=1764 column=36
e
ncode = : pass=0
=
 E_NONE : modules/filters/mod_include.c line=1764 column=11
E
_NONE;
1832            }
1833            else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(tag_val : modules/filters/mod_include.c line=1788 column=15
t
ag_val, "url")) {
1834                encode : modules/filters/mod_include.c line=1764 column=36
e
ncode = : pass=0
=
 E_URL : modules/filters/mod_include.c line=1764 column=19
E
_URL;
1835            }
1836            else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(tag_val : modules/filters/mod_include.c line=1788 column=15
t
ag_val, "entity")) {
1837                encode : modules/filters/mod_include.c line=1764 column=36
e
ncode = : pass=0
=
 E_ENTITY : modules/filters/mod_include.c line=1764 column=26
E
_ENTITY;
1838            }
1839            else {
1840                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1765 column=18
r
, "unknown value "
1841                              "\"%s\" to parameter \"encoding\" of tag echo in "
1842                              "%s", tag_val : modules/filters/mod_include.c line=1788 column=15
t
ag_val, r : modules/filters/mod_include.c line=1765 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1843                SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx, f : modules/filters/mod_include.c line=1761 column=66
f
bb : modules/filters/mod_include.c line=1762 column=53
b
b);
1844                break : pass=0
b
reak;
1845            }
1846        }
1847        else {
1848            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1765 column=18
r
, "unknown parameter "
1849                          "\"%s\" in tag echo of %s", tag : modules/filters/mod_include.c line=1787 column=15
t
ag, r : modules/filters/mod_include.c line=1765 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1850            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1761 column=48
c
tx, f : modules/filters/mod_include.c line=1761 column=66
f
bb : modules/filters/mod_include.c line=1762 column=53
b
b);
1851            break : pass=0
b
reak;
1852        }
1853    }
1854
1855    return : pass=0
r
eturn APR_SUCCESS;
1856}
1857
1858/*
1859 * <!--#config [timefmt="..."] [sizefmt="..."] [errmsg="..."]
1860 *             [echomsg="..."] -->
1861 */
1862static apr_status_t handle_config : call=0
h
andle_config(include_ctx_t *ctx, ap_filter_t *f,
1863                                  apr_bucket_brigade *bb)
1864{
1865    request_rec *r = f : modules/filters/mod_include.c line=1862 column=68
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
1866    apr_table_t *env = r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env;
1867
1868    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1869        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
1870                      (ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
1871                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
1872                      0, r : modules/filters/mod_include.c line=1865 column=18
r
, "missing argument for config element in %s",
1873                      r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1874    }
1875
1876    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
1877        return : pass=0
r
eturn APR_SUCCESS;
1878    }
1879
1880    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1881        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, f : modules/filters/mod_include.c line=1862 column=68
f
bb : modules/filters/mod_include.c line=1863 column=55
b
b);
1882        return : pass=0
r
eturn APR_SUCCESS;
1883    }
1884
1885    while : true=0, false=0
w
hile (1) {
1886        char *tag     = NULL;
1887        char *tag_val = NULL;
1888
1889        ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, &tag : modules/filters/mod_include.c line=1886 column=15
t
ag, &tag_val : modules/filters/mod_include.c line=1887 column=15
t
ag_val, SSI_VALUE_RAW);
1890        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag : modules/filters/mod_include.c line=1886 column=15
t
ag || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag_val : modules/filters/mod_include.c line=1887 column=15
t
ag_val) {
1891            break : pass=0
b
reak;
1892        }
1893
1894        if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1886 column=15
t
ag, "errmsg")) {
1895            ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>error_str : modules/filters/mod_include.h line=92 column=18
e
rror_str = : enter=0, leave=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, tag_val : modules/filters/mod_include.c line=1887 column=15
t
ag_val, NULL, 0,
1896                                                 SSI_EXPAND_DROP_NAME);
1897        }
1898        else if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1886 column=15
t
ag, "echomsg")) {
1899            ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>undefined_echo : modules/filters/mod_include.c line=195 column=19
u
ndefined_echo = : enter=0, leave=0
=
1900                ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, tag_val : modules/filters/mod_include.c line=1887 column=15
t
ag_val, NULL, 0,SSI_EXPAND_DROP_NAME);
1901            ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>undefined_echo_len : modules/filters/mod_include.c line=196 column=19
u
ndefined_echo_len= : enter=0, leave=0
=
strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern-> : enter=0, leave=0
-
>undefined_echo : modules/filters/mod_include.c line=195 column=19
u
ndefined_echo);
1902        }
1903        else if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1886 column=15
t
ag, "timefmt")) {
1904            apr_time_t date = r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>request_time : include/httpd.h line=817 column=16
r
equest_time;
1905
1906            ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str = : enter=0, leave=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, tag_val : modules/filters/mod_include.c line=1887 column=15
t
ag_val, NULL, 0,
1907                                                SSI_EXPAND_DROP_NAME);
1908
1909            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(env : modules/filters/mod_include.c line=1866 column=18
e
nv, "DATE_LOCAL", ap_ht_time : enter=0, leave=0

ap_ht_time : include/httpd.h line=1286 column=20
a
p_ht_time(r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, date : modules/filters/mod_include.c line=1904 column=24
d
ate,
1910                           ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str, 0));
1911            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(env : modules/filters/mod_include.c line=1866 column=18
e
nv, "DATE_GMT", ap_ht_time : enter=0, leave=0

ap_ht_time : include/httpd.h line=1286 column=20
a
p_ht_time(r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, date : modules/filters/mod_include.c line=1904 column=24
d
ate,
1912                           ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str, 1));
1913            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(env : modules/filters/mod_include.c line=1866 column=18
e
nv, "LAST_MODIFIED",
1914                           ap_ht_time : enter=0, leave=0

ap_ht_time : include/httpd.h line=1286 column=20
a
p_ht_time(r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16 mtime,
1915                           ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str, 0));
1916        }
1917        else if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=1886 column=15
t
ag, "sizefmt")) {
1918            char *parsed_string;
1919
1920            parsed_string : modules/filters/mod_include.c line=1918 column=19
p
arsed_string = : pass=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, tag_val : modules/filters/mod_include.c line=1887 column=15
t
ag_val, NULL, 0,
1921                                                SSI_EXPAND_DROP_NAME);
1922            if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(parsed_string : modules/filters/mod_include.c line=1918 column=19
p
arsed_string, "bytes")) {
1923                ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags |= : enter=0, leave=0
|
= SSI_FLAG_SIZE_IN_BYTES;
1924            }
1925            else if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(parsed_string : modules/filters/mod_include.c line=1918 column=19
p
arsed_string, "abbrev")) {
1926                ctx : modules/filters/mod_include.c line=1862 column=50
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags &= : enter=0, leave=0
&
= SSI_FLAG_SIZE_ABBREV;
1927            }
1928            else {
1929                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1865 column=18
r
, "unknown value "
1930                              "\"%s\" to parameter \"sizefmt\" of tag config "
1931                              "in %s", parsed_string : modules/filters/mod_include.c line=1918 column=19
p
arsed_string, r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1932                SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, f : modules/filters/mod_include.c line=1862 column=68
f
bb : modules/filters/mod_include.c line=1863 column=55
b
b);
1933                break : pass=0
b
reak;
1934            }
1935        }
1936        else {
1937            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=1865 column=18
r
, "unknown parameter "
1938                          "\"%s\" to tag config in %s", tag : modules/filters/mod_include.c line=1886 column=15
t
ag, r : modules/filters/mod_include.c line=1865 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1939            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1862 column=50
c
tx, f : modules/filters/mod_include.c line=1862 column=68
f
bb : modules/filters/mod_include.c line=1863 column=55
b
b);
1940            break : pass=0
b
reak;
1941        }
1942    }
1943
1944    return : pass=0
r
eturn APR_SUCCESS;
1945}
1946
1947/*
1948 * <!--#fsize virtual|file="..." [virtual|file="..."] ... -->
1949 */
1950static apr_status_t handle_fsize : call=0
h
andle_fsize(include_ctx_t *ctx, ap_filter_t *f,
1951                                 apr_bucket_brigade *bb)
1952{
1953    request_rec *r = f : modules/filters/mod_include.c line=1950 column=67
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
1954
1955    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1956        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
1957                      (ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
1958                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
1959                      0, r : modules/filters/mod_include.c line=1953 column=18
r
, "missing argument for fsize element in %s",
1960                      r : modules/filters/mod_include.c line=1953 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
1961    }
1962
1963    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
1964        return : pass=0
r
eturn APR_SUCCESS;
1965    }
1966
1967    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
1968        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx, f : modules/filters/mod_include.c line=1950 column=67
f
bb : modules/filters/mod_include.c line=1951 column=54
b
b);
1969        return : pass=0
r
eturn APR_SUCCESS;
1970    }
1971
1972    while : true=0, false=0
w
hile (1) {
1973        char *tag     = NULL;
1974        char *tag_val = NULL;
1975        apr_finfo_t finfo;
1976        char *parsed_string;
1977
1978        ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx, &tag : modules/filters/mod_include.c line=1973 column=15
t
ag, &tag_val : modules/filters/mod_include.c line=1974 column=15
t
ag_val, SSI_VALUE_DECODED);
1979        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag : modules/filters/mod_include.c line=1973 column=15
t
ag || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag_val : modules/filters/mod_include.c line=1974 column=15
t
ag_val) {
1980            break : pass=0
b
reak;
1981        }
1982
1983        parsed_string : modules/filters/mod_include.c line=1976 column=15
p
arsed_string = : pass=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx, tag_val : modules/filters/mod_include.c line=1974 column=15
t
ag_val, NULL, 0,
1984                                            SSI_EXPAND_DROP_NAME);
1985
1986        if : true=0, false=0
i
f (! : true=0, false=0
!
find_file : enter=0, leave=0

find_file : modules/filters/mod_include.c line=1573 column=12
f
ind_file(r : modules/filters/mod_include.c line=1953 column=18
r
, "fsize", tag : modules/filters/mod_include.c line=1973 column=15
t
ag, parsed_string : modules/filters/mod_include.c line=1976 column=15
p
arsed_string, &finfo : modules/filters/mod_include.c line=1975 column=21
f
info)) {
1987            char *buf;
1988            apr_size_t len;
1989
1990            if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_SIZE_IN_BYTES)) {
1991                buf : modules/filters/mod_include.c line=1987 column=19
b
uf = : pass=0
=
 apr_strfsize : enter=0, leave=0

apr_strfsize : /usr/include/apr-1/apr_strings.h line=353 column=21
a
pr_strfsize(finfo : modules/filters/mod_include.c line=1975 column=21
f
info.size : /usr/include/apr-1/apr_file_info.h line=198 column=15 size, apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, 5));
1992                len : modules/filters/mod_include.c line=1988 column=24
l
en = : pass=0
=
 4; /* omit the \0 terminator */
1993            }
1994            else {
1995                apr_size_t l, x, pos;
1996                char *tmp;
1997
1998                tmp : modules/filters/mod_include.c line=1996 column=23
t
mp = : pass=0
=
 apr_psprintf : enter=0, leave=0

apr_psprintf : /usr/include/apr-1/apr_strings.h line=170 column=28
a
pr_psprintf(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, "%" APR_OFF_T_FMT, finfo : modules/filters/mod_include.c line=1975 column=21
f
info.size : /usr/include/apr-1/apr_file_info.h line=198 column=15 size);
1999                len : modules/filters/mod_include.c line=1988 column=24
l
en = : pass=0
=
 l : modules/filters/mod_include.c line=1995 column=28
l
 = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(tmp : modules/filters/mod_include.c line=1996 column=23
t
mp);
2000
2001                for : true=0, false=0
f
or (x : modules/filters/mod_include.c line=1995 column=31
x
 = : pass=0
=
 0; x : modules/filters/mod_include.c line=1995 column=31
x
 < : true=0, false=0
<
 l : modules/filters/mod_include.c line=1995 column=28
l
++ : pass=0
+
+x : modules/filters/mod_include.c line=1995 column=31
x
) {
2002                    if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

x : modules/filters/mod_include.c line=1995 column=31
xTF
 && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
((l : modules/filters/mod_include.c line=1995 column=28
l
 - : pass=0
-
 x : modules/filters/mod_include.c line=1995 column=31
x
% : pass=0
%
 3)) {
2003                        ++ : pass=0
+
+len : modules/filters/mod_include.c line=1988 column=24
l
en;
2004                    }
2005                }
2006
2007                if : true=0, false=0
i
f (len : modules/filters/mod_include.c line=1988 column=24
l
en == : true=0, false=0
=
l : modules/filters/mod_include.c line=1995 column=28
l
) {
2008                    buf : modules/filters/mod_include.c line=1987 column=19
b
uf = : pass=0
=
 apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, tmp : modules/filters/mod_include.c line=1996 column=23
t
mp, len : modules/filters/mod_include.c line=1988 column=24
l
en);
2009                }
2010                else {
2011                    buf : modules/filters/mod_include.c line=1987 column=19
b
uf = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, len : modules/filters/mod_include.c line=1988 column=24
l
en);
2012
2013                    for : true=0, false=0
f
or (pos : modules/filters/mod_include.c line=1995 column=34
p
os = : pass=0
=
 x : modules/filters/mod_include.c line=1995 column=31
x
 = : pass=0
=
 0; x : modules/filters/mod_include.c line=1995 column=31
x
 < : true=0, false=0
<
 l : modules/filters/mod_include.c line=1995 column=28
l
++ : pass=0
+
+x : modules/filters/mod_include.c line=1995 column=31
x
) {
2014                        if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

x : modules/filters/mod_include.c line=1995 column=31
xTF
 && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
((l : modules/filters/mod_include.c line=1995 column=28
l
 - : pass=0
-
 x : modules/filters/mod_include.c line=1995 column=31
x
% : pass=0
%
 3)) {
2015                            buf : modules/filters/mod_include.c line=1987 column=19
b
uf[pos : modules/filters/mod_include.c line=1995 column=34
p
os++ : pass=0
+
+] = : enter=0, leave=0
=
 ',';
2016                        }
2017                        buf : modules/filters/mod_include.c line=1987 column=19
b
uf[pos : modules/filters/mod_include.c line=1995 column=34
p
os++ : pass=0
+
+] = : enter=0, leave=0
=
 tmp : modules/filters/mod_include.c line=1996 column=23
t
mp[] : enter=0, leave=0
[
x : modules/filters/mod_include.c line=1995 column=31
x
];
2018                    }
2019                }
2020            }
2021
2022            APR_BRIGADE_INSERT_TAIL(bb : modules/filters/mod_include.c line=1951 column=54
b
b, apr_bucket_pool_create : enter=0, leave=0

apr_bucket_pool_create : /usr/include/apr-1/apr_buckets.h line=1373 column=27
a
pr_bucket_pool_create(buf : modules/filters/mod_include.c line=1987 column=19
b
uf, len : modules/filters/mod_include.c line=1988 column=24
l
en,
2023                                    ctx : modules/filters/mod_include.c line=1950 column=49
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, f : modules/filters/mod_include.c line=1950 column=67
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc));
2024        }
2025        else {
2026            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=1950 column=49
c
tx, f : modules/filters/mod_include.c line=1950 column=67
f
bb : modules/filters/mod_include.c line=1951 column=54
b
b);
2027            break : pass=0
b
reak;
2028        }
2029    }
2030
2031    return : pass=0
r
eturn APR_SUCCESS;
2032}
2033
2034/*
2035 * <!--#flastmod virtual|file="..." [virtual|file="..."] ... -->
2036 */
2037static apr_status_t handle_flastmod : call=0
h
andle_flastmod(include_ctx_t *ctx, ap_filter_t *f,
2038                                    apr_bucket_brigade *bb)
2039{
2040    request_rec *r = f : modules/filters/mod_include.c line=2037 column=70
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
2041
2042    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=2037 column=52
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2043        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
2044                      (ctx : modules/filters/mod_include.c line=2037 column=52
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
2045                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
2046                      0, r : modules/filters/mod_include.c line=2040 column=18
r
, "missing argument for flastmod element in %s",
2047                      r : modules/filters/mod_include.c line=2040 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2048    }
2049
2050    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=2037 column=52
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
2051        return : pass=0
r
eturn APR_SUCCESS;
2052    }
2053
2054    if : true=0, false=0
i
f (! : true=0, false=0
!
ctx : modules/filters/mod_include.c line=2037 column=52
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2055        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2037 column=52
c
tx, f : modules/filters/mod_include.c line=2037 column=70
f
bb : modules/filters/mod_include.c line=2038 column=57
b
b);
2056        return : pass=0
r
eturn APR_SUCCESS;
2057    }
2058
2059    while : true=0, false=0
w
hile (1) {
2060        char *tag     = NULL;
2061        char *tag_val = NULL;
2062        apr_finfo_t  finfo;
2063        char *parsed_string;
2064
2065        ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=2037 column=52
c
tx, &tag : modules/filters/mod_include.c line=2060 column=15
t
ag, &tag_val : modules/filters/mod_include.c line=2061 column=15
t
ag_val, SSI_VALUE_DECODED);
2066        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag : modules/filters/mod_include.c line=2060 column=15
t
ag || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag_val : modules/filters/mod_include.c line=2061 column=15
t
ag_val) {
2067            break : pass=0
b
reak;
2068        }
2069
2070        parsed_string : modules/filters/mod_include.c line=2063 column=15
p
arsed_string = : pass=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=2037 column=52
c
tx, tag_val : modules/filters/mod_include.c line=2061 column=15
t
ag_val, NULL, 0,
2071                                            SSI_EXPAND_DROP_NAME);
2072
2073        if : true=0, false=0
i
f (! : true=0, false=0
!
find_file : enter=0, leave=0

find_file : modules/filters/mod_include.c line=1573 column=12
f
ind_file(r : modules/filters/mod_include.c line=2040 column=18
r
, "flastmod", tag : modules/filters/mod_include.c line=2060 column=15
t
ag, parsed_string : modules/filters/mod_include.c line=2063 column=15
p
arsed_string, &finfo : modules/filters/mod_include.c line=2062 column=22
f
info)) {
2074            char *t_val;
2075            apr_size_t t_len;
2076
2077            t_val : modules/filters/mod_include.c line=2074 column=19
t
_val = : pass=0
=
 ap_ht_time : enter=0, leave=0

ap_ht_time : include/httpd.h line=1286 column=20
a
p_ht_time(ctx : modules/filters/mod_include.c line=2037 column=52
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, finfo : modules/filters/mod_include.c line=2062 column=22
f
info.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16 mtime, ctx : modules/filters/mod_include.c line=2037 column=52
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str, 0);
2078            t_len : modules/filters/mod_include.c line=2075 column=24
t
_len = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(t_val : modules/filters/mod_include.c line=2074 column=19
t
_val);
2079
2080            APR_BRIGADE_INSERT_TAIL(bb : modules/filters/mod_include.c line=2038 column=57
b
b, apr_bucket_pool_create : enter=0, leave=0

apr_bucket_pool_create : /usr/include/apr-1/apr_buckets.h line=1373 column=27
a
pr_bucket_pool_create(t_val : modules/filters/mod_include.c line=2074 column=19
t
_val, t_len : modules/filters/mod_include.c line=2075 column=24
t
_len,
2081                                    ctx : modules/filters/mod_include.c line=2037 column=52
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, f : modules/filters/mod_include.c line=2037 column=70
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc));
2082        }
2083        else {
2084            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2037 column=52
c
tx, f : modules/filters/mod_include.c line=2037 column=70
f
bb : modules/filters/mod_include.c line=2038 column=57
b
b);
2085            break : pass=0
b
reak;
2086        }
2087    }
2088
2089    return : pass=0
r
eturn APR_SUCCESS;
2090}
2091
2092/*
2093 * <!--#if expr="..." -->
2094 */
2095static apr_status_t handle_if : call=0
h
andle_if(include_ctx_t *ctx, ap_filter_t *f,
2096                              apr_bucket_brigade *bb)
2097{
2098    char *tag = NULL;
2099    char *expr = NULL;
2100    request_rec *r = f : modules/filters/mod_include.c line=2095 column=64
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
2101    int expr_ret, was_error;
2102
2103    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc != : true=0, false=0
!
= 1) {
2104        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
2105                      (ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
2106                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
2107                      0, r : modules/filters/mod_include.c line=2100 column=18
r
, (ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc)
2108                                conditional operator : true=0, false=0
?
 "too many arguments for if element in %s"
2109                                : "missing expr argument for if element in %s",
2110                      r : modules/filters/mod_include.c line=2100 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2111    }
2112
2113    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
2114        ++ : pass=0
+
+(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level);
2115        return : pass=0
r
eturn APR_SUCCESS;
2116    }
2117
2118    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc != : true=0, false=0
!
= 1) {
2119        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx, f : modules/filters/mod_include.c line=2095 column=64
f
bb : modules/filters/mod_include.c line=2096 column=51
b
b);
2120        return : pass=0
r
eturn APR_SUCCESS;
2121    }
2122
2123    ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx, &tag : modules/filters/mod_include.c line=2098 column=11
t
ag, &expr : modules/filters/mod_include.c line=2099 column=11
e
xpr, SSI_VALUE_RAW);
2124
2125    if : true=0, false=0
i
f (strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=2098 column=11
t
ag, "expr")) {
2126        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=2100 column=18
r
, "unknown parameter \"%s\" "
2127                      "to tag if in %s", tag : modules/filters/mod_include.c line=2098 column=11
t
ag, r : modules/filters/mod_include.c line=2100 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2128        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx, f : modules/filters/mod_include.c line=2095 column=64
f
bb : modules/filters/mod_include.c line=2096 column=51
b
b);
2129        return : pass=0
r
eturn APR_SUCCESS;
2130    }
2131
2132    if : true=0, false=0
i
f (! : true=0, false=0
!
expr : modules/filters/mod_include.c line=2099 column=11
e
xpr) {
2133        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=2100 column=18
r
, "missing expr value for if "
2134                      "element in %s", r : modules/filters/mod_include.c line=2100 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2135        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx, f : modules/filters/mod_include.c line=2095 column=64
f
bb : modules/filters/mod_include.c line=2096 column=51
b
b);
2136        return : pass=0
r
eturn APR_SUCCESS;
2137    }
2138
2139    DEBUG_PRINTF((ctx, "****    if expr=\"%s\"\n", expr));
2140
2141    expr_ret : modules/filters/mod_include.c line=2101 column=9
e
xpr_ret = : pass=0
=
 parse_expr : enter=0, leave=0

parse_expr : modules/filters/mod_include.c line=1123 column=12
p
arse_expr(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx, expr : modules/filters/mod_include.c line=2099 column=11
e
xpr, &was_error : modules/filters/mod_include.c line=2101 column=19
w
as_error);
2142
2143    if : true=0, false=0
i
f (was_error : modules/filters/mod_include.c line=2101 column=19
w
as_error) {
2144        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2095 column=46
c
tx, f : modules/filters/mod_include.c line=2095 column=64
f
bb : modules/filters/mod_include.c line=2096 column=51
b
b);
2145        return : pass=0
r
eturn APR_SUCCESS;
2146    }
2147
2148    if : true=0, false=0
i
f (expr_ret : modules/filters/mod_include.c line=2101 column=9
e
xpr_ret) {
2149        ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags |= : enter=0, leave=0
|
= (SSI_FLAG_PRINTING | : pass=0
|
 SSI_FLAG_COND_TRUE);
2150    }
2151    else {
2152        ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags &= : enter=0, leave=0
&
= SSI_FLAG_CLEAR_PRINT_COND;
2153    }
2154
2155    DEBUG_DUMP_COND(ctx, "   if");
2156
2157    ctx : modules/filters/mod_include.c line=2095 column=46
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level = : enter=0, leave=0
=
 0;
2158
2159    return : pass=0
r
eturn APR_SUCCESS;
2160}
2161
2162/*
2163 * <!--#elif expr="..." -->
2164 */
2165static apr_status_t handle_elif : call=0
h
andle_elif(include_ctx_t *ctx, ap_filter_t *f,
2166                                apr_bucket_brigade *bb)
2167{
2168    char *tag = NULL;
2169    char *expr = NULL;
2170    request_rec *r = f : modules/filters/mod_include.c line=2165 column=66
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
2171    int expr_ret, was_error;
2172
2173    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc != : true=0, false=0
!
= 1) {
2174        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
2175                      (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level)) conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
2176                      0, r : modules/filters/mod_include.c line=2170 column=18
r
, (ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc)
2177                                conditional operator : true=0, false=0
?
 "too many arguments for if element in %s"
2178                                : "missing expr argument for if element in %s",
2179                      r : modules/filters/mod_include.c line=2170 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2180    }
2181
2182    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level) {
2183        return : pass=0
r
eturn APR_SUCCESS;
2184    }
2185
2186    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc != : true=0, false=0
!
= 1) {
2187        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2165 column=48
c
tx, f : modules/filters/mod_include.c line=2165 column=66
f
bb : modules/filters/mod_include.c line=2166 column=53
b
b);
2188        return : pass=0
r
eturn APR_SUCCESS;
2189    }
2190
2191    ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=2165 column=48
c
tx, &tag : modules/filters/mod_include.c line=2168 column=11
t
ag, &expr : modules/filters/mod_include.c line=2169 column=11
e
xpr, SSI_VALUE_RAW);
2192
2193    if : true=0, false=0
i
f (strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=2168 column=11
t
ag, "expr")) {
2194        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=2170 column=18
r
, "unknown parameter \"%s\" "
2195                      "to tag if in %s", tag : modules/filters/mod_include.c line=2168 column=11
t
ag, r : modules/filters/mod_include.c line=2170 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2196        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2165 column=48
c
tx, f : modules/filters/mod_include.c line=2165 column=66
f
bb : modules/filters/mod_include.c line=2166 column=53
b
b);
2197        return : pass=0
r
eturn APR_SUCCESS;
2198    }
2199
2200    if : true=0, false=0
i
f (! : true=0, false=0
!
expr : modules/filters/mod_include.c line=2169 column=11
e
xpr) {
2201        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=2170 column=18
r
, "missing expr in elif "
2202                      "statement: %s", r : modules/filters/mod_include.c line=2170 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2203        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2165 column=48
c
tx, f : modules/filters/mod_include.c line=2165 column=66
f
bb : modules/filters/mod_include.c line=2166 column=53
b
b);
2204        return : pass=0
r
eturn APR_SUCCESS;
2205    }
2206
2207    DEBUG_PRINTF((ctx, "****  elif expr=\"%s\"\n", expr));
2208    DEBUG_DUMP_COND(ctx, " elif");
2209
2210    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_COND_TRUE) {
2211        ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags &= : enter=0, leave=0
&
= SSI_FLAG_CLEAR_PRINTING;
2212        return : pass=0
r
eturn APR_SUCCESS;
2213    }
2214
2215    expr_ret : modules/filters/mod_include.c line=2171 column=9
e
xpr_ret = : pass=0
=
 parse_expr : enter=0, leave=0

parse_expr : modules/filters/mod_include.c line=1123 column=12
p
arse_expr(ctx : modules/filters/mod_include.c line=2165 column=48
c
tx, expr : modules/filters/mod_include.c line=2169 column=11
e
xpr, &was_error : modules/filters/mod_include.c line=2171 column=19
w
as_error);
2216
2217    if : true=0, false=0
i
f (was_error : modules/filters/mod_include.c line=2171 column=19
w
as_error) {
2218        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2165 column=48
c
tx, f : modules/filters/mod_include.c line=2165 column=66
f
bb : modules/filters/mod_include.c line=2166 column=53
b
b);
2219        return : pass=0
r
eturn APR_SUCCESS;
2220    }
2221
2222    if : true=0, false=0
i
f (expr_ret : modules/filters/mod_include.c line=2171 column=9
e
xpr_ret) {
2223        ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags |= : enter=0, leave=0
|
= (SSI_FLAG_PRINTING | : pass=0
|
 SSI_FLAG_COND_TRUE);
2224    }
2225    else {
2226        ctx : modules/filters/mod_include.c line=2165 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags &= : enter=0, leave=0
&
= SSI_FLAG_CLEAR_PRINT_COND;
2227    }
2228
2229    DEBUG_DUMP_COND(ctx, " elif");
2230
2231    return : pass=0
r
eturn APR_SUCCESS;
2232}
2233
2234/*
2235 * <!--#else -->
2236 */
2237static apr_status_t handle_else : call=0
h
andle_else(include_ctx_t *ctx, ap_filter_t *f,
2238                                apr_bucket_brigade *bb)
2239{
2240    request_rec *r = f : modules/filters/mod_include.c line=2237 column=66
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
2241
2242    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2243        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
2244                      (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level)) conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
2245                      0, r : modules/filters/mod_include.c line=2240 column=18
r
, "else directive does not take tags in %s",
2246                      r : modules/filters/mod_include.c line=2240 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2247    }
2248
2249    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level) {
2250        return : pass=0
r
eturn APR_SUCCESS;
2251    }
2252
2253    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2254        if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING) {
2255            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2237 column=48
c
tx, f : modules/filters/mod_include.c line=2237 column=66
f
bb : modules/filters/mod_include.c line=2238 column=53
b
b);
2256        }
2257
2258        return : pass=0
r
eturn APR_SUCCESS;
2259    }
2260
2261    DEBUG_DUMP_COND(ctx, " else");
2262
2263    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_COND_TRUE) {
2264        ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags &= : enter=0, leave=0
&
= SSI_FLAG_CLEAR_PRINTING;
2265    }
2266    else {
2267        ctx : modules/filters/mod_include.c line=2237 column=48
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags |= : enter=0, leave=0
|
= (SSI_FLAG_PRINTING | : pass=0
|
 SSI_FLAG_COND_TRUE);
2268    }
2269
2270    return : pass=0
r
eturn APR_SUCCESS;
2271}
2272
2273/*
2274 * <!--#endif -->
2275 */
2276static apr_status_t handle_endif : call=0
h
andle_endif(include_ctx_t *ctx, ap_filter_t *f,
2277                                 apr_bucket_brigade *bb)
2278{
2279    request_rec *r = f : modules/filters/mod_include.c line=2276 column=67
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
2280
2281    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2276 column=49
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2282        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
2283                      (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=2276 column=49
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level)) conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
2284                      0, r : modules/filters/mod_include.c line=2279 column=18
r
, "endif directive does not take tags in %s",
2285                      r : modules/filters/mod_include.c line=2279 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2286    }
2287
2288    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2276 column=49
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level) {
2289        -- : pass=0
-
-(ctx : modules/filters/mod_include.c line=2276 column=49
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level);
2290        return : pass=0
r
eturn APR_SUCCESS;
2291    }
2292
2293    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2276 column=49
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2294        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2276 column=49
c
tx, f : modules/filters/mod_include.c line=2276 column=67
f
bb : modules/filters/mod_include.c line=2277 column=54
b
b);
2295        return : pass=0
r
eturn APR_SUCCESS;
2296    }
2297
2298    DEBUG_DUMP_COND(ctx, "endif");
2299
2300    ctx : modules/filters/mod_include.c line=2276 column=49
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags |= : enter=0, leave=0
|
= (SSI_FLAG_PRINTING | : pass=0
|
 SSI_FLAG_COND_TRUE);
2301
2302    return : pass=0
r
eturn APR_SUCCESS;
2303}
2304
2305/*
2306 * <!--#set var="..." value="..." ... -->
2307 */
2308static apr_status_t handle_set : call=0
h
andle_set(include_ctx_t *ctx, ap_filter_t *f,
2309                               apr_bucket_brigade *bb)
2310{
2311    char *var = NULL;
2312    request_rec *r = f : modules/filters/mod_include.c line=2308 column=65
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
2313    request_rec *sub = r : modules/filters/mod_include.c line=2312 column=18
r
-> : enter=0, leave=0
-
>main : include/httpd.h line=793 column=18
m
ain;
2314    apr_pool_t *p = r : modules/filters/mod_include.c line=2312 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool;
2315
2316    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2308 column=47
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc < : true=0, false=0
<
 2) {
2317        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
2318                      (ctx : modules/filters/mod_include.c line=2308 column=47
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
2319                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
2320                      0, r : modules/filters/mod_include.c line=2312 column=18
r
, "missing argument for set element in %s",
2321                      r : modules/filters/mod_include.c line=2312 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2322    }
2323
2324    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=2308 column=47
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
2325        return : pass=0
r
eturn APR_SUCCESS;
2326    }
2327
2328    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2308 column=47
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc < : true=0, false=0
<
 2) {
2329        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2308 column=47
c
tx, f : modules/filters/mod_include.c line=2308 column=65
f
bb : modules/filters/mod_include.c line=2309 column=52
b
b);
2330        return : pass=0
r
eturn APR_SUCCESS;
2331    }
2332
2333    /* we need to use the 'main' request pool to set notes as that is
2334     * a notes lifetime
2335     */
2336    while : true=0, false=0
w
hile (sub : modules/filters/mod_include.c line=2313 column=18
s
ub) {
2337        p : modules/filters/mod_include.c line=2314 column=17
p
 = : pass=0
=
 sub : modules/filters/mod_include.c line=2313 column=18
s
ub-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool;
2338        sub : modules/filters/mod_include.c line=2313 column=18
s
ub = : pass=0
=
 sub : modules/filters/mod_include.c line=2313 column=18
s
ub-> : enter=0, leave=0
-
>main : include/httpd.h line=793 column=18
m
ain;
2339    }
2340
2341    while : true=0, false=0
w
hile (1) {
2342        char *tag = NULL;
2343        char *tag_val = NULL;
2344
2345        ap_ssi_get_tag_and_value : enter=0, leave=0

ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value(ctx : modules/filters/mod_include.c line=2308 column=47
c
tx, &tag : modules/filters/mod_include.c line=2342 column=15
t
ag, &tag_val : modules/filters/mod_include.c line=2343 column=15
t
ag_val, SSI_VALUE_DECODED);
2346
2347        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag : modules/filters/mod_include.c line=2342 column=15
t
ag || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
tag_val : modules/filters/mod_include.c line=2343 column=15
t
ag_val) {
2348            break : pass=0
b
reak;
2349        }
2350
2351        if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=2342 column=15
t
ag, "var")) {
2352            var : modules/filters/mod_include.c line=2311 column=11
v
ar = : pass=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=2308 column=47
c
tx, tag_val : modules/filters/mod_include.c line=2343 column=15
t
ag_val, NULL, 0,
2353                                      SSI_EXPAND_DROP_NAME);
2354        }
2355        else if : true=0, false=0
i
f (! : true=0, false=0
!
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(tag : modules/filters/mod_include.c line=2342 column=15
t
ag, "value")) {
2356            char *parsed_string;
2357
2358            if : true=0, false=0
i
f (! : true=0, false=0
!
var : modules/filters/mod_include.c line=2311 column=11
v
ar) {
2359                ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=2312 column=18
r
, "variable must "
2360                              "precede value in set directive in %s",
2361                              r : modules/filters/mod_include.c line=2312 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2362                SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2308 column=47
c
tx, f : modules/filters/mod_include.c line=2308 column=65
f
bb : modules/filters/mod_include.c line=2309 column=52
b
b);
2363                break : pass=0
b
reak;
2364            }
2365
2366            parsed_string : modules/filters/mod_include.c line=2356 column=19
p
arsed_string = : pass=0
=
 ap_ssi_parse_string : enter=0, leave=0

ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string(ctx : modules/filters/mod_include.c line=2308 column=47
c
tx, tag_val : modules/filters/mod_include.c line=2343 column=15
t
ag_val, NULL, 0,
2367                                                SSI_EXPAND_DROP_NAME);
2368            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/filters/mod_include.c line=2312 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env, apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(p : modules/filters/mod_include.c line=2314 column=17
p
var : modules/filters/mod_include.c line=2311 column=11
v
ar),
2369                           apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(p : modules/filters/mod_include.c line=2314 column=17
p
parsed_string : modules/filters/mod_include.c line=2356 column=19
p
arsed_string));
2370        }
2371        else {
2372            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=2312 column=18
r
, "Invalid tag for set "
2373                          "directive in %s", r : modules/filters/mod_include.c line=2312 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2374            SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2308 column=47
c
tx, f : modules/filters/mod_include.c line=2308 column=65
f
bb : modules/filters/mod_include.c line=2309 column=52
b
b);
2375            break : pass=0
b
reak;
2376        }
2377    }
2378
2379    return : pass=0
r
eturn APR_SUCCESS;
2380}
2381
2382/*
2383 * <!--#printenv -->
2384 */
2385static apr_status_t handle_printenv : call=0
h
andle_printenv(include_ctx_t *ctx, ap_filter_t *f,
2386                                    apr_bucket_brigade *bb)
2387{
2388    request_rec *r = f : modules/filters/mod_include.c line=2385 column=70
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
2389    const apr_array_header_t *arr;
2390    const apr_table_entry_t *elts;
2391    int i;
2392
2393    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2394        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK,
2395                      (ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)
2396                          conditional operator : true=0, false=0
?
 APLOG_ERR : APLOG_WARNING,
2397                      0, r : modules/filters/mod_include.c line=2388 column=18
r
, "printenv directive does not take tags in %s",
2398                      r : modules/filters/mod_include.c line=2388 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2399    }
2400
2401    if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
2402        return : pass=0
r
eturn APR_SUCCESS;
2403    }
2404
2405    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc) {
2406        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=2385 column=52
c
tx, f : modules/filters/mod_include.c line=2385 column=70
f
bb : modules/filters/mod_include.c line=2386 column=57
b
b);
2407        return : pass=0
r
eturn APR_SUCCESS;
2408    }
2409
2410    arr : modules/filters/mod_include.c line=2389 column=31
a
rr = : pass=0
=
 apr_table_elts : enter=0, leave=0

apr_table_elts : /usr/include/apr-1/apr_tables.h line=88 column=41
a
pr_table_elts(r : modules/filters/mod_include.c line=2388 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env);
2411    elts : modules/filters/mod_include.c line=2390 column=30
e
lts = : pass=0
=
 (apr_table_entry_t *)arr : modules/filters/mod_include.c line=2389 column=31
a
rr-> : enter=0, leave=0
-
>elts : /usr/include/apr-1/apr_tables.h line=62 column=11 elts;
2412
2413    for : true=0, false=0
f
or (i : modules/filters/mod_include.c line=2391 column=9
i
 = : pass=0
=
 0; i : modules/filters/mod_include.c line=2391 column=9
i
 < : true=0, false=0
<
 arr : modules/filters/mod_include.c line=2389 column=31
a
rr-> : enter=0, leave=0
-
>nelts : /usr/include/apr-1/apr_tables.h line=58 column=9 nelts; ++ : pass=0
+
+i : modules/filters/mod_include.c line=2391 column=9
i
) {
2414        const char *key_text, *val_text;
2415        char *key_val, *next;
2416        apr_size_t k_len, v_len, kv_length;
2417
2418        /* get key */
2419        key_text : modules/filters/mod_include.c line=2414 column=21
k
ey_text = : pass=0
=
 ap_escape_html : enter=0, leave=0

ap_escape_html : include/httpd.h line=1512 column=20
a
p_escape_html(ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, elts : modules/filters/mod_include.c line=2390 column=30
e
lts[] : enter=0, leave=0
[
i : modules/filters/mod_include.c line=2391 column=9
i
].key : /usr/include/apr-1/apr_tables.h line=73 column=11 key);
2420        k_len : modules/filters/mod_include.c line=2416 column=20
k
_len = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(key_text : modules/filters/mod_include.c line=2414 column=21
k
ey_text);
2421
2422        /* get value */
2423        val_text : modules/filters/mod_include.c line=2414 column=32
v
al_text = : pass=0
=
 elts : modules/filters/mod_include.c line=2390 column=30
e
lts[] : enter=0, leave=0
[
i : modules/filters/mod_include.c line=2391 column=9
i
].val : /usr/include/apr-1/apr_tables.h line=77 column=11 val;
2424        if : true=0, false=0
i
f (val_text : modules/filters/mod_include.c line=2414 column=32
v
al_text == : true=0, false=0
=
= LAZY_VALUE) {
2425            val_text : modules/filters/mod_include.c line=2414 column=32
v
al_text = : pass=0
=
 add_include_vars_lazy : enter=0, leave=0

add_include_vars_lazy : modules/filters/mod_include.c line=617 column=20
a
dd_include_vars_lazy(r : modules/filters/mod_include.c line=2388 column=18
r
elts : modules/filters/mod_include.c line=2390 column=30
e
lts[] : enter=0, leave=0
[
i : modules/filters/mod_include.c line=2391 column=9
i
].key : /usr/include/apr-1/apr_tables.h line=73 column=11 key, ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str);
2426        }
2427        val_text : modules/filters/mod_include.c line=2414 column=32
v
al_text = : pass=0
=
 ap_escape_html : enter=0, leave=0

ap_escape_html : include/httpd.h line=1512 column=20
a
p_escape_html(ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, elts : modules/filters/mod_include.c line=2390 column=30
e
lts[] : enter=0, leave=0
[
i : modules/filters/mod_include.c line=2391 column=9
i
].val : /usr/include/apr-1/apr_tables.h line=77 column=11 val);
2428        v_len : modules/filters/mod_include.c line=2416 column=27
v
_len = : pass=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(val_text : modules/filters/mod_include.c line=2414 column=32
v
al_text);
2429
2430        /* assemble result */
2431        kv_length : modules/filters/mod_include.c line=2416 column=34
k
v_length = : pass=0
=
 k_len : modules/filters/mod_include.c line=2416 column=20
k
_len + : pass=0
+
 v_len : modules/filters/mod_include.c line=2416 column=27
v
_len + : pass=0
+
 sizeof("=\n");
2432        key_val : modules/filters/mod_include.c line=2415 column=15
k
ey_val = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, kv_length : modules/filters/mod_include.c line=2416 column=34
k
v_length);
2433        next : modules/filters/mod_include.c line=2415 column=25
n
ext = : pass=0
=
 key_val : modules/filters/mod_include.c line=2415 column=15
k
ey_val;
2434
2435        memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(next : modules/filters/mod_include.c line=2415 column=25
n
ext, key_text : modules/filters/mod_include.c line=2414 column=21
k
ey_text, k_len : modules/filters/mod_include.c line=2416 column=20
k
_len);
2436        next : modules/filters/mod_include.c line=2415 column=25
n
ext += : pass=0
+
k_len : modules/filters/mod_include.c line=2416 column=20
k
_len;
2437        *next : modules/filters/mod_include.c line=2415 column=25
n
ext++ : pass=0
+
= : enter=0, leave=0
=
 '=';
2438        memcpy : enter=0, leave=0

memcpy : /usr/include/string.h line=44 column=14
m
emcpy(next : modules/filters/mod_include.c line=2415 column=25
n
ext, val_text : modules/filters/mod_include.c line=2414 column=32
v
al_text, v_len : modules/filters/mod_include.c line=2416 column=27
v
_len);
2439        next : modules/filters/mod_include.c line=2415 column=25
n
ext += : pass=0
+
v_len : modules/filters/mod_include.c line=2416 column=27
v
_len;
2440        *next : modules/filters/mod_include.c line=2415 column=25
n
ext++ : pass=0
+
= : enter=0, leave=0
=
 '\n';
2441        *next : modules/filters/mod_include.c line=2415 column=25
n
ext = : enter=0, leave=0
=
 0;
2442
2443        APR_BRIGADE_INSERT_TAIL(bb : modules/filters/mod_include.c line=2386 column=57
b
b, apr_bucket_pool_create : enter=0, leave=0

apr_bucket_pool_create : /usr/include/apr-1/apr_buckets.h line=1373 column=27
a
pr_bucket_pool_create(key_val : modules/filters/mod_include.c line=2415 column=15
k
ey_val, kv_length : modules/filters/mod_include.c line=2416 column=34
k
v_length- : pass=0
-
1,
2444                                ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, f : modules/filters/mod_include.c line=2385 column=70
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc));
2445    }
2446
2447    ctx : modules/filters/mod_include.c line=2385 column=52
c
tx-> : enter=0, leave=0
-
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now = : enter=0, leave=0
=
 1;
2448    return : pass=0
r
eturn APR_SUCCESS;
2449}
2450
2451
2452/*
2453 * +-------------------------------------------------------+
2454 * |                                                       |
2455 * |               Main Includes-Filter Engine
2456 * |                                                       |
2457 * +-------------------------------------------------------+
2458 */
2459
2460/* This is an implementation of the BNDM search algorithm.
2461 *
2462 * Fast and Flexible String Matching by Combining Bit-parallelism and
2463 * Suffix Automata (2001)
2464 * Gonzalo Navarro, Mathieu Raffinot
2465 *
2466 * http://www-igm.univ-mlv.fr/~raffinot/ftp/jea2001.ps.gz
2467 *
2468 * Initial code submitted by Sascha Schumann.
2469 */
2470
2471/* Precompile the bndm_t data structure. */
2472static bndm_t *bndm_compile : call=0
b
ndm_compile(apr_pool_t *pool, const char *n, apr_size_t nl)
2473{
2474    unsigned int x;
2475    const char *ne = n : modules/filters/mod_include.c line=2472 column=59
n
 + : pass=0
+
 nl : modules/filters/mod_include.c line=2472 column=73
n
l;
2476    bndm_t *t = apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(pool : modules/filters/mod_include.c line=2472 column=41
p
ool, sizeof(*t));
2477
2478    memset : enter=0, leave=0

memset : /usr/include/string.h line=65 column=14
m
emset(t : modules/filters/mod_include.c line=2476 column=13
t
-> : enter=0, leave=0
-
>T : modules/filters/mod_include.c line=167 column=18
T
, 0, sizeof(unsigned int) * : pass=0
*
 256);
2479    t : modules/filters/mod_include.c line=2476 column=13
t
-> : enter=0, leave=0
-
>pattern_len : modules/filters/mod_include.c line=169 column=16
p
attern_len = : enter=0, leave=0
=
 nl : modules/filters/mod_include.c line=2472 column=73
n
l;
2480
2481    for : true=0, false=0
f
or (x : modules/filters/mod_include.c line=2474 column=18
x
 = : pass=0
=
 1; n : modules/filters/mod_include.c line=2472 column=59
n
 < : true=0, false=0
<
 ne : modules/filters/mod_include.c line=2475 column=17
n
e; x : modules/filters/mod_include.c line=2474 column=18
x
 <<= : pass=0
<
<= 1) {
2482        t : modules/filters/mod_include.c line=2476 column=13
t
-> : enter=0, leave=0
-
>T : modules/filters/mod_include.c line=167 column=18
T
[] : enter=0, leave=0
[
(unsigned char) * dereference : enter=0, leave=0
*
n : modules/filters/mod_include.c line=2472 column=59
n
++ : pass=0
+
+] |= : enter=0, leave=0
|
x : modules/filters/mod_include.c line=2474 column=18
x
;
2483    }
2484
2485    t : modules/filters/mod_include.c line=2476 column=13
t
-> : enter=0, leave=0
-
>x : modules/filters/mod_include.c line=168 column=18
x
 = : enter=0, leave=0
=
 x : modules/filters/mod_include.c line=2474 column=18
x
 - : pass=0
-
 1;
2486
2487    return : pass=0
r
eturn t : modules/filters/mod_include.c line=2476 column=13
t
;
2488}
2489
2490/* Implements the BNDM search algorithm (as described above).
2491 *
2492 * h  - the string to look in
2493 * hl - length of the string to look for
2494 * t  - precompiled bndm structure against the pattern
2495 *
2496 * Returns the count of character that is the first match or hl if no
2497 * match is found.
2498 */
2499static apr_size_t bndm : call=0
b
ndm(bndm_t *t, const char *h, apr_size_t hl)
2500{
2501    const char *skip;
2502    const char *he, *p, *pi;
2503    unsigned int *T, x, d;
2504    apr_size_t nl;
2505
2506    he : modules/filters/mod_include.c line=2502 column=17
h
= : pass=0
=
 h : modules/filters/mod_include.c line=2499 column=47
h
 + : pass=0
+
 hl : modules/filters/mod_include.c line=2499 column=61
h
l;
2507
2508    T : modules/filters/mod_include.c line=2503 column=19
T
 = : pass=0
=
 t : modules/filters/mod_include.c line=2499 column=32
t
-> : enter=0, leave=0
-
>T : modules/filters/mod_include.c line=167 column=18
T
;
2509    x : modules/filters/mod_include.c line=2503 column=22
x
 = : pass=0
=
 t : modules/filters/mod_include.c line=2499 column=32
t
-> : enter=0, leave=0
-
>x : modules/filters/mod_include.c line=168 column=18
x
;
2510    nl : modules/filters/mod_include.c line=2504 column=16
n
= : pass=0
=
 t : modules/filters/mod_include.c line=2499 column=32
t
-> : enter=0, leave=0
-
>pattern_len : modules/filters/mod_include.c line=169 column=16
p
attern_len;
2511
2512    pi : modules/filters/mod_include.c line=2502 column=26
p
= : pass=0
=
 h : modules/filters/mod_include.c line=2499 column=47
h
 - : pass=0
-
 1; /* pi: p initial */
2513    p : modules/filters/mod_include.c line=2502 column=22
p
 = : pass=0
=
 pi : modules/filters/mod_include.c line=2502 column=26
p
+ : pass=0
+
 nl : modules/filters/mod_include.c line=2504 column=16
n
l; /* compare window right to left. point to the first char */
2514
2515    while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2502 column=22
p
 < : true=0, false=0
<
 he : modules/filters/mod_include.c line=2502 column=17
h
e) {
2516        skip : modules/filters/mod_include.c line=2501 column=17
s
kip = : pass=0
=
 p : modules/filters/mod_include.c line=2502 column=22
p
;
2517        d : modules/filters/mod_include.c line=2503 column=25
d
 = : pass=0
=
 x : modules/filters/mod_include.c line=2503 column=22
x
;
2518        do {
2519            d : modules/filters/mod_include.c line=2503 column=25
d
 &= : pass=0
&
T : modules/filters/mod_include.c line=2503 column=19
T
[] : enter=0, leave=0
[
(unsigned char) * dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2502 column=22
p
-- : pass=0
-
-];
2520            if : true=0, false=0
i
f (! : true=0, false=0
!
d : modules/filters/mod_include.c line=2503 column=25
d
) {
2521                break : pass=0
b
reak;
2522            }
2523            if : true=0, false=0
i
f ((d : modules/filters/mod_include.c line=2503 column=25
d
 & : pass=0
&
 1)) {
2524                if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2502 column=22
p
 != : true=0, false=0
!
pi : modules/filters/mod_include.c line=2502 column=26
p
i) {
2525                    skip : modules/filters/mod_include.c line=2501 column=17
s
kip = : pass=0
=
 p : modules/filters/mod_include.c line=2502 column=22
p
;
2526                }
2527                else {
2528                    return : pass=0
r
eturn p : modules/filters/mod_include.c line=2502 column=22
p
 - : pass=0
-
 h : modules/filters/mod_include.c line=2499 column=47
h
 + : pass=0
+
 1;
2529                }
2530            }
2531            d : modules/filters/mod_include.c line=2503 column=25
d
 >>= : pass=0
>
>= 1;
2532        } while : true=0, false=0
w
hile (d : modules/filters/mod_include.c line=2503 column=25
d
);
2533
2534        pi : modules/filters/mod_include.c line=2502 column=26
p
= : pass=0
=
 skip : modules/filters/mod_include.c line=2501 column=17
s
kip;
2535        p : modules/filters/mod_include.c line=2502 column=22
p
 = : pass=0
=
 pi : modules/filters/mod_include.c line=2502 column=26
p
+ : pass=0
+
 nl : modules/filters/mod_include.c line=2504 column=16
n
l;
2536    }
2537
2538    return : pass=0
r
eturn hl : modules/filters/mod_include.c line=2499 column=61
h
l;
2539}
2540
2541/*
2542 * returns the index position of the first byte of start_seq (or the len of
2543 * the buffer as non-match)
2544 */
2545static apr_size_t find_start_sequence : call=0
f
ind_start_sequence(include_ctx_t *ctx, const char *data,
2546                                      apr_size_t len)
2547{
2548    struct ssi_internal_ctx *intern = ctx : modules/filters/mod_include.c line=2545 column=54
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern;
2549    apr_size_t slen = intern : modules/filters/mod_include.c line=2548 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq_pat : modules/filters/mod_include.c line=184 column=19
s
tart_seq_pat-> : enter=0, leave=0
-
>pattern_len : modules/filters/mod_include.c line=169 column=16
p
attern_len;
2550    apr_size_t index;
2551    const char *p, *ep;
2552
2553    if : true=0, false=0
i
f (len : modules/filters/mod_include.c line=2546 column=50
l
en < : true=0, false=0
<
 slen : modules/filters/mod_include.c line=2549 column=16
s
len) {
2554        p : modules/filters/mod_include.c line=2551 column=17
p
 = : pass=0
=
 data : modules/filters/mod_include.c line=2545 column=71
d
ata; /* try partial match at the end of the buffer (below) */
2555    }
2556    else {
2557        /* try fast bndm search over the buffer
2558         * (hopefully the whole start sequence can be found in this buffer)
2559         */
2560        index : modules/filters/mod_include.c line=2550 column=16
i
ndex = : pass=0
=
 bndm : enter=0, leave=0

bndm : modules/filters/mod_include.c line=2499 column=19
b
ndm(intern : modules/filters/mod_include.c line=2548 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq_pat : modules/filters/mod_include.c line=184 column=19
s
tart_seq_pat, data : modules/filters/mod_include.c line=2545 column=71
d
ata, len : modules/filters/mod_include.c line=2546 column=50
l
en);
2561
2562        /* wow, found it. ready. */
2563        if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=2550 column=16
i
ndex < : true=0, false=0
<
 len : modules/filters/mod_include.c line=2546 column=50
l
en) {
2564            intern : modules/filters/mod_include.c line=2548 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_DIRECTIVE : modules/filters/mod_include.c line=132 column=5
P
ARSE_DIRECTIVE;
2565            return : pass=0
r
eturn index : modules/filters/mod_include.c line=2550 column=16
i
ndex;
2566        }
2567        else {
2568            /* ok, the pattern can't be found as whole in the buffer,
2569             * check the end for a partial match
2570             */
2571            p : modules/filters/mod_include.c line=2551 column=17
p
 = : pass=0
=
 data : modules/filters/mod_include.c line=2545 column=71
d
ata + : pass=0
+
 len : modules/filters/mod_include.c line=2546 column=50
l
en - : pass=0
-
 slen : modules/filters/mod_include.c line=2549 column=16
s
len + : pass=0
+
 1;
2572        }
2573    }
2574
2575    ep : modules/filters/mod_include.c line=2551 column=21
e
= : pass=0
=
 data : modules/filters/mod_include.c line=2545 column=71
d
ata + : pass=0
+
 len : modules/filters/mod_include.c line=2546 column=50
l
en;
2576    do {
2577        while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2551 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2551 column=21
e
&& : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2551 column=17
p
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
* dereference : enter=0, leave=0
*
intern : modules/filters/mod_include.c line=2548 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq) {
2578            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2551 column=17
p
;
2579        }
2580
2581        index : modules/filters/mod_include.c line=2550 column=16
i
ndex = : pass=0
=
 p : modules/filters/mod_include.c line=2551 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2545 column=71
d
ata;
2582
2583        /* found a possible start_seq start */
2584        if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2551 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2551 column=21
e
p) {
2585            apr_size_t pos = 1;
2586
2587            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2551 column=17
p
;
2588            while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2551 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2551 column=21
e
&& : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2551 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=2548 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq[] : enter=0, leave=0
[
pos : modules/filters/mod_include.c line=2585 column=24
p
os]) {
2589                ++ : pass=0
+
+p : modules/filters/mod_include.c line=2551 column=17
p
;
2590                ++ : pass=0
+
+pos : modules/filters/mod_include.c line=2585 column=24
p
os;
2591            }
2592
2593            /* partial match found. Store the info for the next round */
2594            if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2551 column=17
p
 == : true=0, false=0
=
ep : modules/filters/mod_include.c line=2551 column=21
e
p) {
2595                intern : modules/filters/mod_include.c line=2548 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_HEAD : modules/filters/mod_include.c line=131 column=5
P
ARSE_HEAD;
2596                intern : modules/filters/mod_include.c line=2548 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos = : enter=0, leave=0
=
 pos : modules/filters/mod_include.c line=2585 column=24
p
os;
2597                return : pass=0
r
eturn index : modules/filters/mod_include.c line=2550 column=16
i
ndex;
2598            }
2599        }
2600
2601        /* we must try all combinations; consider (e.g.) SSIStartTag "--->"
2602         * and a string data of "--.-" and the end of the buffer
2603         */
2604        p : modules/filters/mod_include.c line=2551 column=17
p
 = : pass=0
=
 data : modules/filters/mod_include.c line=2545 column=71
d
ata + : pass=0
+
 index : modules/filters/mod_include.c line=2550 column=16
i
ndex + : pass=0
+
 1;
2605    } while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2551 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2551 column=21
e
p);
2606
2607    /* no match */
2608    return : pass=0
r
eturn len : modules/filters/mod_include.c line=2546 column=50
l
en;
2609}
2610
2611/*
2612 * returns the first byte *after* the partial (or final) match.
2613 *
2614 * If we had to trick with the start_seq start, 'release' returns the
2615 * number of chars of the start_seq which appeared not to be part of a
2616 * full tag and may have to be passed down the filter chain.
2617 */
2618static apr_size_t find_partial_start_sequence : call=0
f
ind_partial_start_sequence(include_ctx_t *ctx,
2619                                              const char *data,
2620                                              apr_size_t len,
2621                                              apr_size_t *release)
2622{
2623    struct ssi_internal_ctx *intern = ctx : modules/filters/mod_include.c line=2618 column=62
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern;
2624    apr_size_t pos, spos = 0;
2625    apr_size_t slen = intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq_pat : modules/filters/mod_include.c line=184 column=19
s
tart_seq_pat-> : enter=0, leave=0
-
>pattern_len : modules/filters/mod_include.c line=169 column=16
p
attern_len;
2626    const char *p, *ep;
2627
2628    pos : modules/filters/mod_include.c line=2624 column=16
p
os = : pass=0
=
 intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos;
2629    ep : modules/filters/mod_include.c line=2626 column=21
e
= : pass=0
=
 data : modules/filters/mod_include.c line=2619 column=59
d
ata + : pass=0
+
 len : modules/filters/mod_include.c line=2620 column=58
l
en;
2630    *release : modules/filters/mod_include.c line=2621 column=59
r
elease = : enter=0, leave=0
=
 0;
2631
2632    do {
2633        p : modules/filters/mod_include.c line=2626 column=17
p
 = : pass=0
=
 data : modules/filters/mod_include.c line=2619 column=59
d
ata;
2634
2635        while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2626 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2626 column=21
e
&& : true=0, false=0
&
pos : modules/filters/mod_include.c line=2624 column=16
p
os < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 slen : modules/filters/mod_include.c line=2625 column=16
s
len && : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2626 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq[] : enter=0, leave=0
[
pos : modules/filters/mod_include.c line=2624 column=16
p
os]) {
2636            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2626 column=17
p
;
2637            ++ : pass=0
+
+pos : modules/filters/mod_include.c line=2624 column=16
p
os;
2638        }
2639
2640        /* full match */
2641        if : true=0, false=0
i
f (pos : modules/filters/mod_include.c line=2624 column=16
p
os == : true=0, false=0
=
slen : modules/filters/mod_include.c line=2625 column=16
s
len) {
2642            intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_DIRECTIVE : modules/filters/mod_include.c line=132 column=5
P
ARSE_DIRECTIVE;
2643            return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2626 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2619 column=59
d
ata);
2644        }
2645
2646        /* the whole buffer is a partial match */
2647        if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2626 column=17
p
 == : true=0, false=0
=
ep : modules/filters/mod_include.c line=2626 column=21
e
p) {
2648            intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos = : enter=0, leave=0
=
 pos : modules/filters/mod_include.c line=2624 column=16
p
os;
2649            return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2626 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2619 column=59
d
ata);
2650        }
2651
2652        /* No match so far, but again:
2653         * We must try all combinations, since the start_seq is a random
2654         * user supplied string
2655         *
2656         * So: look if the first char of start_seq appears somewhere within
2657         * the current partial match. If it does, try to start a match that
2658         * begins with this offset. (This can happen, if a strange
2659         * start_seq like "---->" spans buffers)
2660         */
2661        if : true=0, false=0
i
f (spos : modules/filters/mod_include.c line=2624 column=21
s
pos < : true=0, false=0
<
 intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos) {
2662            do {
2663                ++ : pass=0
+
+spos : modules/filters/mod_include.c line=2624 column=21
s
pos;
2664                ++ : pass=0
+
+* dereference : enter=0, leave=0
*
release : modules/filters/mod_include.c line=2621 column=59
r
elease;
2665                p : modules/filters/mod_include.c line=2626 column=17
p
 = : pass=0
=
 intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq + : pass=0
+
 spos : modules/filters/mod_include.c line=2624 column=21
s
pos;
2666                pos : modules/filters/mod_include.c line=2624 column=16
p
os = : pass=0
=
 intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos - : pass=0
-
 spos : modules/filters/mod_include.c line=2624 column=21
s
pos;
2667
2668                while : true=0, false=0
w
hile (MC/DC independently affect : true=0, false=0

pos : modules/filters/mod_include.c line=2624 column=16
pTF
os && : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2626 column=17
p
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
* dereference : enter=0, leave=0
*
intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq) {
2669                    ++ : pass=0
+
+p : modules/filters/mod_include.c line=2626 column=17
p
;
2670                    ++ : pass=0
+
+spos : modules/filters/mod_include.c line=2624 column=21
s
pos;
2671                    ++ : pass=0
+
+* dereference : enter=0, leave=0
*
release : modules/filters/mod_include.c line=2621 column=59
r
elease;
2672                    -- : pass=0
-
-pos : modules/filters/mod_include.c line=2624 column=16
p
os;
2673                }
2674
2675                /* if a matching beginning char was found, try to match the
2676                 * remainder of the old buffer.
2677                 */
2678                if : true=0, false=0
i
f (pos : modules/filters/mod_include.c line=2624 column=16
p
os > : true=0, false=0
>
 1) {
2679                    apr_size_t t = 1;
2680
2681                    ++ : pass=0
+
+p : modules/filters/mod_include.c line=2626 column=17
p
;
2682                    while : true=0, false=0
w
hile (t : modules/filters/mod_include.c line=2679 column=32
t
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 pos : modules/filters/mod_include.c line=2624 column=16
p
os && : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2626 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq[] : enter=0, leave=0
[
t : modules/filters/mod_include.c line=2679 column=32
t
]) {
2683                        ++ : pass=0
+
+p : modules/filters/mod_include.c line=2626 column=17
p
;
2684                        ++ : pass=0
+
+t : modules/filters/mod_include.c line=2679 column=32
t
;
2685                    }
2686
2687                    if : true=0, false=0
i
f (t : modules/filters/mod_include.c line=2679 column=32
t
 == : true=0, false=0
=
pos : modules/filters/mod_include.c line=2624 column=16
p
os) {
2688                        /* yeah, another partial match found in the *old*
2689                         * buffer, now test the *current* buffer for
2690                         * continuing match
2691                         */
2692                        break : pass=0
b
reak;
2693                    }
2694                }
2695            } while : true=0, false=0
w
hile (pos : modules/filters/mod_include.c line=2624 column=16
p
os > : true=0, false=0
>
 1);
2696
2697            if : true=0, false=0
i
f (pos : modules/filters/mod_include.c line=2624 column=16
p
os) {
2698                continue : pass=0
c
ontinue;
2699            }
2700        }
2701
2702        break : pass=0
b
reak;
2703    } while : true=0, false=0
w
hile (1); /* work hard to find a match ;-) */
2704
2705    /* no match at all, release all (wrongly) matched chars so far */
2706    *release : modules/filters/mod_include.c line=2621 column=59
r
elease = : enter=0, leave=0
=
 intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos;
2707    intern : modules/filters/mod_include.c line=2623 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_PRE_HEAD : modules/filters/mod_include.c line=130 column=5
P
ARSE_PRE_HEAD;
2708    return : pass=0
r
eturn 0;
2709}
2710
2711/*
2712 * returns the position after the directive
2713 */
2714static apr_size_t find_directive : call=0
f
ind_directive(include_ctx_t *ctx, const char *data,
2715                                 apr_size_t len, char ***store,
2716                                 apr_size_t **store_len)
2717{
2718    struct ssi_internal_ctx *intern = ctx : modules/filters/mod_include.c line=2714 column=49
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern;
2719    const char *p = data : modules/filters/mod_include.c line=2714 column=66
d
ata;
2720    const char *ep = data : modules/filters/mod_include.c line=2714 column=66
d
ata + : pass=0
+
 len : modules/filters/mod_include.c line=2715 column=45
l
en;
2721    apr_size_t pos;
2722
2723    switch : pass=0
s
witch (intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
2724    case : true=0, false=0
c
ase PARSE_DIRECTIVE:
2725        while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2719 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2720 column=17
e
&& : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2719 column=17
p
)) {
2726            /* we have to consider the case of missing space between directive
2727             * and end_seq (be somewhat lenient), e.g. <!--#printenv-->
2728             */
2729            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2719 column=17
p
 == : true=0, false=0
=
* dereference : enter=0, leave=0
*
intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq : modules/filters/mod_include.c line=185 column=19
e
nd_seq) {
2730                intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_DIRECTIVE_TAIL : modules/filters/mod_include.c line=134 column=5
P
ARSE_DIRECTIVE_TAIL;
2731                intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos = : enter=0, leave=0
=
 1;
2732                ++ : pass=0
+
+p : modules/filters/mod_include.c line=2719 column=17
p
;
2733                return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2719 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2714 column=66
d
ata);
2734            }
2735            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2719 column=17
p
;
2736        }
2737
2738        if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2719 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2720 column=17
e
p) { /* found delimiter whitespace */
2739            intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_DIRECTIVE_POSTNAME : modules/filters/mod_include.c line=133 column=5
P
ARSE_DIRECTIVE_POSTNAME;
2740            *store : modules/filters/mod_include.c line=2715 column=58
s
tore = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective;
2741            *store_len : modules/filters/mod_include.c line=2716 column=47
s
tore_len = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len;
2742        }
2743
2744        break : pass=0
b
reak;
2745
2746    case : true=0, false=0
c
ase PARSE_DIRECTIVE_TAIL:
2747        pos : modules/filters/mod_include.c line=2721 column=16
p
os = : pass=0
=
 intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos;
2748
2749        while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2719 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2720 column=17
e
&& : true=0, false=0
&
pos : modules/filters/mod_include.c line=2721 column=16
p
os < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq_len : modules/filters/mod_include.c line=186 column=19
e
nd_seq_len && : true=0, false=0
&
&
2750               * dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2719 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq : modules/filters/mod_include.c line=185 column=19
e
nd_seq[] : enter=0, leave=0
[
pos : modules/filters/mod_include.c line=2721 column=16
p
os]) {
2751            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2719 column=17
p
;
2752            ++ : pass=0
+
+pos : modules/filters/mod_include.c line=2721 column=16
p
os;
2753        }
2754
2755        /* full match, we're done */
2756        if : true=0, false=0
i
f (pos : modules/filters/mod_include.c line=2721 column=16
p
os == : true=0, false=0
=
intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq_len : modules/filters/mod_include.c line=186 column=19
e
nd_seq_len) {
2757            intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_DIRECTIVE_POSTTAIL : modules/filters/mod_include.c line=135 column=5
P
ARSE_DIRECTIVE_POSTTAIL;
2758            *store : modules/filters/mod_include.c line=2715 column=58
s
tore = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective;
2759            *store_len : modules/filters/mod_include.c line=2716 column=47
s
tore_len = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len;
2760            break : pass=0
b
reak;
2761        }
2762
2763        /* partial match, the buffer is too small to match fully */
2764        if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2719 column=17
p
 == : true=0, false=0
=
ep : modules/filters/mod_include.c line=2720 column=17
e
p) {
2765            intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos = : enter=0, leave=0
=
 pos : modules/filters/mod_include.c line=2721 column=16
p
os;
2766            break : pass=0
b
reak;
2767        }
2768
2769        /* no match. continue normal parsing */
2770        intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_DIRECTIVE : modules/filters/mod_include.c line=132 column=5
P
ARSE_DIRECTIVE;
2771        return : pass=0
r
eturn 0;
2772
2773    case : true=0, false=0
c
ase PARSE_DIRECTIVE_POSTTAIL:
2774        intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_EXECUTE : modules/filters/mod_include.c line=147 column=5
P
ARSE_EXECUTE;
2775        intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len -= : enter=0, leave=0
-
intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq_len : modules/filters/mod_include.c line=186 column=19
e
nd_seq_len;
2776        /* continue immediately with the next state */
2777
2778    case : true=0, false=0
c
ase PARSE_DIRECTIVE_POSTNAME:
2779        if : true=0, false=0
i
f (PARSE_DIRECTIVE_POSTNAME : modules/filters/mod_include.c line=133 column=5
P
ARSE_DIRECTIVE_POSTNAME == : true=0, false=0
=
intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
2780            intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_PRE_ARG : modules/filters/mod_include.c line=136 column=5
P
ARSE_PRE_ARG;
2781        }
2782        ctx : modules/filters/mod_include.c line=2714 column=49
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc = : enter=0, leave=0
=
 0;
2783        intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv = : enter=0, leave=0
=
 NULL;
2784
2785        if : true=0, false=0
i
f (! : true=0, false=0
!
intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len) {
2786            intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>error : modules/filters/mod_include.c line=175 column=19
e
rror = : enter=0, leave=0
=
 1;
2787            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
, "missing "
2788                          "directive name in parsed document %s",
2789                          intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2790        }
2791        else {
2792            char *sp = intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective;
2793            char *sep = intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective + : pass=0
+
 intern : modules/filters/mod_include.c line=2718 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len;
2794
2795            /* normalize directive name */
2796            for : true=0, false=0
f
or (; sp : modules/filters/mod_include.c line=2792 column=19
s
< : true=0, false=0
<
 sep : modules/filters/mod_include.c line=2793 column=19
s
ep; ++ : pass=0
+
+sp : modules/filters/mod_include.c line=2792 column=19
s
p) {
2797                *sp : modules/filters/mod_include.c line=2792 column=19
s
= : enter=0, leave=0
=
 apr_tolower(* dereference : enter=0, leave=0
*
sp : modules/filters/mod_include.c line=2792 column=19
s
p);
2798            }
2799        }
2800
2801        return : pass=0
r
eturn 0;
2802
2803    default : true=0, false=0
d
efault:
2804        /* get a rid of a gcc warning about unhandled enumerations */
2805        break : pass=0
b
reak;
2806    }
2807
2808    return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2719 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2714 column=66
d
ata);
2809}
2810
2811/*
2812 * find out whether the next token is (a possible) end_seq or an argument
2813 */
2814static apr_size_t find_arg_or_tail : call=0
f
ind_arg_or_tail(include_ctx_t *ctx, const char *data,
2815                                   apr_size_t len)
2816{
2817    struct ssi_internal_ctx *intern = ctx : modules/filters/mod_include.c line=2814 column=51
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern;
2818    const char *p = data : modules/filters/mod_include.c line=2814 column=68
d
ata;
2819    const char *ep = data : modules/filters/mod_include.c line=2814 column=68
d
ata + : pass=0
+
 len : modules/filters/mod_include.c line=2815 column=47
l
en;
2820
2821    /* skip leading WS */
2822    while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2818 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2819 column=17
e
&& : true=0, false=0
&
& apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2818 column=17
p
)) {
2823        ++ : pass=0
+
+p : modules/filters/mod_include.c line=2818 column=17
p
;
2824    }
2825
2826    /* buffer doesn't consist of whitespaces only */
2827    if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2818 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2819 column=17
e
p) {
2828        intern : modules/filters/mod_include.c line=2817 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2818 column=17
p
 == : true=0, false=0
=
* dereference : enter=0, leave=0
*
intern : modules/filters/mod_include.c line=2817 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq : modules/filters/mod_include.c line=185 column=19
e
nd_seq) conditional operator : true=0, false=0
?
 PARSE_TAIL : modules/filters/mod_include.c line=145 column=5
P
ARSE_TAIL : PARSE_ARG : modules/filters/mod_include.c line=137 column=5
P
ARSE_ARG;
2829    }
2830
2831    return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2818 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2814 column=68
d
ata);
2832}
2833
2834/*
2835 * test the stream for end_seq. If it doesn't match at all, it must be an
2836 * argument
2837 */
2838static apr_size_t find_tail : call=0
f
ind_tail(include_ctx_t *ctx, const char *data,
2839                            apr_size_t len)
2840{
2841    struct ssi_internal_ctx *intern = ctx : modules/filters/mod_include.c line=2838 column=44
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern;
2842    const char *p = data : modules/filters/mod_include.c line=2838 column=61
d
ata;
2843    const char *ep = data : modules/filters/mod_include.c line=2838 column=61
d
ata + : pass=0
+
 len : modules/filters/mod_include.c line=2839 column=40
l
en;
2844    apr_size_t pos = intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos;
2845
2846    if : true=0, false=0
i
f (PARSE_TAIL : modules/filters/mod_include.c line=145 column=5
P
ARSE_TAIL == : true=0, false=0
=
intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
2847        intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_TAIL_SEQ : modules/filters/mod_include.c line=146 column=5
P
ARSE_TAIL_SEQ;
2848        pos : modules/filters/mod_include.c line=2844 column=16
p
os = : pass=0
=
 intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos = : enter=0, leave=0
=
 0;
2849    }
2850
2851    while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2842 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2843 column=17
e
&& : true=0, false=0
&
pos : modules/filters/mod_include.c line=2844 column=16
p
os < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq_len : modules/filters/mod_include.c line=186 column=19
e
nd_seq_len && : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2842 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq : modules/filters/mod_include.c line=185 column=19
e
nd_seq[] : enter=0, leave=0
[
pos : modules/filters/mod_include.c line=2844 column=16
p
os]) {
2852        ++ : pass=0
+
+p : modules/filters/mod_include.c line=2842 column=17
p
;
2853        ++ : pass=0
+
+pos : modules/filters/mod_include.c line=2844 column=16
p
os;
2854    }
2855
2856    /* bingo, full match */
2857    if : true=0, false=0
i
f (pos : modules/filters/mod_include.c line=2844 column=16
p
os == : true=0, false=0
=
intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>end_seq_len : modules/filters/mod_include.c line=186 column=19
e
nd_seq_len) {
2858        intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_EXECUTE : modules/filters/mod_include.c line=147 column=5
P
ARSE_EXECUTE;
2859        return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2842 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2838 column=61
d
ata);
2860    }
2861
2862    /* partial match, the buffer is too small to match fully */
2863    if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2842 column=17
p
 == : true=0, false=0
=
ep : modules/filters/mod_include.c line=2843 column=17
e
p) {
2864        intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos = : enter=0, leave=0
=
 pos : modules/filters/mod_include.c line=2844 column=16
p
os;
2865        return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2842 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2838 column=61
d
ata);
2866    }
2867
2868    /* no match. It must be an argument string then
2869     * The caller should cleanup and rewind to the reparse point
2870     */
2871    intern : modules/filters/mod_include.c line=2841 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG : modules/filters/mod_include.c line=137 column=5
P
ARSE_ARG;
2872    return : pass=0
r
eturn 0;
2873}
2874
2875/*
2876 * extract name=value from the buffer
2877 * A pcre-pattern could look (similar to):
2878 * name\s*(?:=\s*(["'`]?)value\1(?>\s*))?
2879 */
2880static apr_size_t find_argument : call=0
f
ind_argument(include_ctx_t *ctx, const char *data,
2881                                apr_size_t len, char ***store,
2882                                apr_size_t **store_len)
2883{
2884    struct ssi_internal_ctx *intern = ctx : modules/filters/mod_include.c line=2880 column=48
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern;
2885    const char *p = data : modules/filters/mod_include.c line=2880 column=65
d
ata;
2886    const char *ep = data : modules/filters/mod_include.c line=2880 column=65
d
ata + : pass=0
+
 len : modules/filters/mod_include.c line=2881 column=44
l
en;
2887
2888    switch : pass=0
s
witch (intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
2889    case : true=0, false=0
c
ase PARSE_ARG:
2890        /*
2891         * create argument structure and append it to the current list
2892         */
2893        intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg = : enter=0, leave=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(ctx : modules/filters/mod_include.c line=2880 column=48
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool,
2894                                         sizeof(*intern->current_arg));
2895        intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=151 column=23
n
ext = : enter=0, leave=0
=
 NULL;
2896
2897        ++ : pass=0
+
+(ctx : modules/filters/mod_include.c line=2880 column=48
c
tx-> : enter=0, leave=0
-
>argc : modules/filters/mod_include.h line=89 column=18
a
rgc);
2898        if : true=0, false=0
i
f (! : true=0, false=0
!
intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv) {
2899            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv = : enter=0, leave=0
=
 intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg;
2900        }
2901        else {
2902            arg_item_t *newarg = intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>argv : modules/filters/mod_include.c line=191 column=19
a
rgv;
2903
2904            while : true=0, false=0
w
hile (newarg : modules/filters/mod_include.c line=2902 column=25
n
ewarg-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=151 column=23
n
ext) {
2905                newarg : modules/filters/mod_include.c line=2902 column=25
n
ewarg = : pass=0
=
 newarg : modules/filters/mod_include.c line=2902 column=25
n
ewarg-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=151 column=23
n
ext;
2906            }
2907            newarg : modules/filters/mod_include.c line=2902 column=25
n
ewarg-> : enter=0, leave=0
-
>next : modules/filters/mod_include.c line=151 column=23
n
ext = : enter=0, leave=0
=
 intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg;
2908        }
2909
2910        /* check whether it's a valid one. If it begins with a quote, we
2911         * can safely assume, someone forgot the name of the argument
2912         */
2913        switch : pass=0
s
witch (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
) {
2914        case : true=0, false=0
c
ase '"': case : true=0, false=0
c
ase '\'': case : true=0, false=0
c
ase '`':
2915            *store : modules/filters/mod_include.c line=2881 column=57
s
tore = : enter=0, leave=0
=
 NULL;
2916
2917            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_VAL : modules/filters/mod_include.c line=142 column=5
P
ARSE_ARG_VAL;
2918            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote = : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
++ : pass=0
+
+;
2919            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name : modules/filters/mod_include.c line=152 column=23
n
ame = : enter=0, leave=0
=
 NULL;
2920            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name_len : modules/filters/mod_include.c line=153 column=23
n
ame_len = : enter=0, leave=0
=
 0;
2921            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>error : modules/filters/mod_include.c line=175 column=19
e
rror = : enter=0, leave=0
=
 1;
2922
2923            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
, "missing "
2924                          "argument name for value to tag %s in %s",
2925                          apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective,
2926                                         intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len),
2927                                         intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2928
2929            return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2885 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2880 column=65
d
ata);
2930
2931        default : true=0, false=0
d
efault:
2932            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_NAME : modules/filters/mod_include.c line=138 column=5
P
ARSE_ARG_NAME;
2933        }
2934        /* continue immediately with next state */
2935
2936    case : true=0, false=0
c
ase PARSE_ARG_NAME:
2937        while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2885 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2886 column=17
e
&& : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
&& : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
 != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '=') {
2938            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
2939        }
2940
2941        if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2885 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2886 column=17
e
p) {
2942            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_POSTNAME : modules/filters/mod_include.c line=139 column=5
P
ARSE_ARG_POSTNAME;
2943            *store : modules/filters/mod_include.c line=2881 column=57
s
tore = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name : modules/filters/mod_include.c line=152 column=23
n
ame;
2944            *store_len : modules/filters/mod_include.c line=2882 column=46
s
tore_len = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name_len : modules/filters/mod_include.c line=153 column=23
n
ame_len;
2945            return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2885 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2880 column=65
d
ata);
2946        }
2947        break : pass=0
b
reak;
2948
2949    case : true=0, false=0
c
ase PARSE_ARG_POSTNAME:
2950        intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name : modules/filters/mod_include.c line=152 column=23
n
ame = : enter=0, leave=0
=
 apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(ctx : modules/filters/mod_include.c line=2880 column=48
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool,
2951                                                 intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name : modules/filters/mod_include.c line=152 column=23
n
ame,
2952                                                 intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name_len : modules/filters/mod_include.c line=153 column=23
n
ame_len);
2953        if : true=0, false=0
i
f (! : true=0, false=0
!
intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name_len : modules/filters/mod_include.c line=153 column=23
n
ame_len) {
2954            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>error : modules/filters/mod_include.c line=175 column=19
e
rror = : enter=0, leave=0
=
 1;
2955            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
, "missing "
2956                          "argument name for value to tag %s in %s",
2957                          apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective,
2958                                         intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len),
2959                                         intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
2960        }
2961        else {
2962            char *sp = intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>name : modules/filters/mod_include.c line=152 column=23
n
ame;
2963
2964            /* normalize the name */
2965            while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
sp : modules/filters/mod_include.c line=2962 column=19
s
p) {
2966                *sp : modules/filters/mod_include.c line=2962 column=19
s
= : enter=0, leave=0
=
 apr_tolower(* dereference : enter=0, leave=0
*
sp : modules/filters/mod_include.c line=2962 column=19
s
p);
2967                ++ : pass=0
+
+sp : modules/filters/mod_include.c line=2962 column=19
s
p;
2968            }
2969        }
2970
2971        intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_EQ : modules/filters/mod_include.c line=140 column=5
P
ARSE_ARG_EQ;
2972        /* continue with next state immediately */
2973
2974    case : true=0, false=0
c
ase PARSE_ARG_EQ:
2975        *store : modules/filters/mod_include.c line=2881 column=57
s
tore = : enter=0, leave=0
=
 NULL;
2976
2977        while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2885 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2886 column=17
e
&& : true=0, false=0
&
& apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
)) {
2978            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
2979        }
2980
2981        if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2885 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2886 column=17
e
p) {
2982            if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
 == : true=0, false=0
=
= '=') {
2983                intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_PREVAL : modules/filters/mod_include.c line=141 column=5
P
ARSE_ARG_PREVAL;
2984                ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
2985            }
2986            else { /* no value */
2987                intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=154 column=23
v
alue = : enter=0, leave=0
=
 NULL;
2988                intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_PRE_ARG : modules/filters/mod_include.c line=136 column=5
P
ARSE_PRE_ARG;
2989            }
2990
2991            return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2885 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2880 column=65
d
ata);
2992        }
2993        break : pass=0
b
reak;
2994
2995    case : true=0, false=0
c
ase PARSE_ARG_PREVAL:
2996        *store : modules/filters/mod_include.c line=2881 column=57
s
tore = : enter=0, leave=0
=
 NULL;
2997
2998        while : true=0, false=0
w
hile (p : modules/filters/mod_include.c line=2885 column=17
p
 < : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2886 column=17
e
&& : true=0, false=0
&
& apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
)) {
2999            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
3000        }
3001
3002        /* buffer doesn't consist of whitespaces only */
3003        if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2885 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2886 column=17
e
p) {
3004            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_VAL : modules/filters/mod_include.c line=142 column=5
P
ARSE_ARG_VAL;
3005            switch : pass=0
s
witch (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
) {
3006            case : true=0, false=0
c
ase '"': case : true=0, false=0
c
ase '\'': case : true=0, false=0
c
ase '`':
3007                intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote = : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
++ : pass=0
+
+;
3008                break : pass=0
b
reak;
3009            default : true=0, false=0
d
efault:
3010                intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote = : enter=0, leave=0
=
 '\0';
3011                break : pass=0
b
reak;
3012            }
3013
3014            return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2885 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2880 column=65
d
ata);
3015        }
3016        break : pass=0
b
reak;
3017
3018    case : true=0, false=0
c
ase PARSE_ARG_VAL_ESC:
3019        if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
 == : true=0, false=0
=
intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote) {
3020            ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
3021        }
3022        intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_VAL : modules/filters/mod_include.c line=142 column=5
P
ARSE_ARG_VAL;
3023        /* continue with next state immediately */
3024
3025    case : true=0, false=0
c
ase PARSE_ARG_VAL:
3026        for : true=0, false=0
f
or (; p : modules/filters/mod_include.c line=2885 column=17
p
 < : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2886 column=17
e
p; ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
) {
3027            if : true=0, false=0
i
f (intern : modules/filters/mod_include.c line=2884 column=30
i
nternMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>quote : modules/filters/mod_include.c line=176 column=19
q
uote && : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\\') {
3028                ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
3029                if : true=0, false=0
i
f (p : modules/filters/mod_include.c line=2885 column=17
p
 == : true=0, false=0
=
ep : modules/filters/mod_include.c line=2886 column=17
e
p) {
3030                    intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_VAL_ESC : modules/filters/mod_include.c line=143 column=5
P
ARSE_ARG_VAL_ESC;
3031                    break : pass=0
b
reak;
3032                }
3033
3034                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
 != : true=0, false=0
!
intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote) {
3035                    -- : pass=0
-
-p : modules/filters/mod_include.c line=2885 column=17
p
;
3036                }
3037            }
3038            else if : true=0, false=0
i
f (intern : modules/filters/mod_include.c line=2884 column=30
i
nternMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>quote : modules/filters/mod_include.c line=176 column=19
q
uote && : true=0, false=0
&
* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
 == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote) {
3039                ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
3040                *store : modules/filters/mod_include.c line=2881 column=57
s
tore = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=154 column=23
v
alue;
3041                *store_len : modules/filters/mod_include.c line=2882 column=46
s
tore_len = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value_len : modules/filters/mod_include.c line=155 column=23
v
alue_len;
3042                intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_POSTVAL : modules/filters/mod_include.c line=144 column=5
P
ARSE_ARG_POSTVAL;
3043                break : pass=0
b
reak;
3044            }
3045            else if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote && : true=0, false=0
&
& apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=2885 column=17
p
)) {
3046                ++ : pass=0
+
+p : modules/filters/mod_include.c line=2885 column=17
p
;
3047                *store : modules/filters/mod_include.c line=2881 column=57
s
tore = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=154 column=23
v
alue;
3048                *store_len : modules/filters/mod_include.c line=2882 column=46
s
tore_len = : enter=0, leave=0
=
 &intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value_len : modules/filters/mod_include.c line=155 column=23
v
alue_len;
3049                intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_ARG_POSTVAL : modules/filters/mod_include.c line=144 column=5
P
ARSE_ARG_POSTVAL;
3050                break : pass=0
b
reak;
3051            }
3052        }
3053
3054        return : pass=0
r
eturn (p : modules/filters/mod_include.c line=2885 column=17
p
 - : pass=0
-
 data : modules/filters/mod_include.c line=2880 column=65
d
ata);
3055
3056    case : true=0, false=0
c
ase PARSE_ARG_POSTVAL:
3057        /*
3058         * The value is still the raw input string. Finally clean it up.
3059         */
3060        -- : pass=0
-
-(intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value_len : modules/filters/mod_include.c line=155 column=23
v
alue_len);
3061
3062        /* strip quote escaping \ from the string */
3063        if : true=0, false=0
i
f (intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote) {
3064            apr_size_t shift = 0;
3065            char *sp;
3066
3067            sp : modules/filters/mod_include.c line=3065 column=19
s
= : pass=0
=
 intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=154 column=23
v
alue;
3068            ep : modules/filters/mod_include.c line=2886 column=17
e
= : pass=0
=
 intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=154 column=23
v
alue + : pass=0
+
 intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value_len : modules/filters/mod_include.c line=155 column=23
v
alue_len;
3069            while : true=0, false=0
w
hile (sp : modules/filters/mod_include.c line=3065 column=19
s
< : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
 ep : modules/filters/mod_include.c line=2886 column=17
e
&& : true=0, false=0
&
* dereference : enter=0, leave=0
*
sp : modules/filters/mod_include.c line=3065 column=19
s
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= '\\') {
3070                ++ : pass=0
+
+sp : modules/filters/mod_include.c line=3065 column=19
s
p;
3071            }
3072            for : true=0, false=0
f
or (; sp : modules/filters/mod_include.c line=3065 column=19
s
< : true=0, false=0
<
 ep : modules/filters/mod_include.c line=2886 column=17
e
p; ++ : pass=0
+
+sp : modules/filters/mod_include.c line=3065 column=19
s
p) {
3073                if : true=0, false=0
i
f (* dereference : enter=0, leave=0
*
sp : modules/filters/mod_include.c line=3065 column=19
s
== : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= '\\' && : true=0, false=0
&
sp : modules/filters/mod_include.c line=3065 column=19
s
p[] : enter=0, leave=0
[
1] == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>quote : modules/filters/mod_include.c line=176 column=19
q
uote) {
3074                    ++ : pass=0
+
+sp : modules/filters/mod_include.c line=3065 column=19
s
p;
3075                    ++ : pass=0
+
+shift : modules/filters/mod_include.c line=3064 column=24
s
hift;
3076                }
3077                if : true=0, false=0
i
f (shift : modules/filters/mod_include.c line=3064 column=24
s
hift) {
3078                    *(sp : modules/filters/mod_include.c line=3065 column=19
s
p- : pass=0
-
shift : modules/filters/mod_include.c line=3064 column=24
s
hift) = : enter=0, leave=0
=
 * dereference : enter=0, leave=0
*
sp : modules/filters/mod_include.c line=3065 column=19
s
p;
3079                }
3080            }
3081
3082            intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value_len : modules/filters/mod_include.c line=155 column=23
v
alue_len -= : enter=0, leave=0
-
shift : modules/filters/mod_include.c line=3064 column=24
s
hift;
3083        }
3084
3085        intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value : modules/filters/mod_include.c line=154 column=23
v
alue[intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>current_arg : modules/filters/mod_include.c line=190 column=19
c
urrent_arg-> : enter=0, leave=0
-
>value_len : modules/filters/mod_include.c line=155 column=23
v
alue_len] = : enter=0, leave=0
=
 '\0';
3086        intern : modules/filters/mod_include.c line=2884 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_PRE_ARG : modules/filters/mod_include.c line=136 column=5
P
ARSE_PRE_ARG;
3087
3088        return : pass=0
r
eturn 0;
3089
3090    default : true=0, false=0
d
efault:
3091        /* get a rid of a gcc warning about unhandled enumerations */
3092        break : pass=0
b
reak;
3093    }
3094
3095    return : pass=0
r
eturn len : modules/filters/mod_include.c line=2881 column=44
l
en; /* partial match of something */
3096}
3097
3098/*
3099 * This is the main loop over the current bucket brigade.
3100 */
3101static apr_status_t send_parsed_content : call=0
s
end_parsed_content(ap_filter_t *f, apr_bucket_brigade *bb)
3102{
3103    include_ctx_t *ctx = f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx;
3104    struct ssi_internal_ctx *intern = ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern;
3105    request_rec *r = f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
3106    apr_bucket *b = APR_BRIGADE_FIRST(bb : modules/filters/mod_include.c line=3101 column=77
b
b);
3107    apr_bucket_brigade *pass_bb;
3108    apr_status_t rv = APR_SUCCESS;
3109    char *magic; /* magic pointer for sentinel use */
3110
3111    /* fast exit */
3112    if : true=0, false=0
i
f (APR_BRIGADE_EMPTY(bb : modules/filters/mod_include.c line=3101 column=77
b
b)) {
3113        return : pass=0
r
eturn APR_SUCCESS;
3114    }
3115
3116    /* we may crash, since already cleaned up; hand over the responsibility
3117     * to the next filter;-)
3118     */
3119    if : true=0, false=0
i
f (intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>seen_eos : modules/filters/mod_include.c line=174 column=19
s
een_eos) {
3120        return : pass=0
r
eturn ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, bb : modules/filters/mod_include.c line=3101 column=77
b
b);
3121    }
3122
3123    /* All stuff passed along has to be put into that brigade */
3124    pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb = : pass=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
3125
3126    /* initialization for this loop */
3127    intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>bytes_read : modules/filters/mod_include.c line=178 column=19
b
ytes_read = : enter=0, leave=0
=
 0;
3128    intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>error : modules/filters/mod_include.c line=175 column=19
e
rror = : enter=0, leave=0
=
 0;
3129    intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>r : modules/filters/mod_include.c line=182 column=19
r
 = : enter=0, leave=0
=
 r : modules/filters/mod_include.c line=3105 column=18
r
;
3130    ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now = : enter=0, leave=0
=
 0;
3131
3132    /* loop over the current bucket brigade */
3133    while : true=0, false=0
w
hile (b : modules/filters/mod_include.c line=3106 column=17
b
 != : true=0, false=0
!
= APR_BRIGADE_SENTINEL(bb : modules/filters/mod_include.c line=3101 column=77
b
b)) {
3134        const char *data = NULL;
3135        apr_size_t len, index, release;
3136        apr_bucket *newb = NULL;
3137        char **store = &magic : modules/filters/mod_include.c line=3109 column=11
m
agic;
3138        apr_size_t *store_len = NULL;
3139
3140        /* handle meta buckets before reading any data */
3141        if : true=0, false=0
i
f (APR_BUCKET_IS_METADATA(b : modules/filters/mod_include.c line=3106 column=17
b
)) {
3142            newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3143
3144            APR_BUCKET_REMOVE(b : modules/filters/mod_include.c line=3106 column=17
b
);
3145
3146            if : true=0, false=0
i
f (APR_BUCKET_IS_EOS(b : modules/filters/mod_include.c line=3106 column=17
b
)) {
3147                intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>seen_eos : modules/filters/mod_include.c line=174 column=19
s
een_eos = : enter=0, leave=0
=
 1;
3148
3149                /* Hit end of stream, time for cleanup ... But wait!
3150                 * Perhaps we're not ready yet. We may have to loop one or
3151                 * two times again to finish our work. In that case, we
3152                 * just re-insert the EOS bucket to allow for an extra loop.
3153                 *
3154                 * PARSE_EXECUTE means, we've hit a directive just before the
3155                 *    EOS, which is now waiting for execution.
3156                 *
3157                 * PARSE_DIRECTIVE_POSTTAIL means, we've hit a directive with
3158                 *    no argument and no space between directive and end_seq
3159                 *    just before the EOS. (consider <!--#printenv--> as last
3160                 *    or only string within the stream). This state, however,
3161                 *    just cleans up and turns itself to PARSE_EXECUTE, which
3162                 *    will be passed through within the next (and actually
3163                 *    last) round.
3164                 */
3165                if : true=0, false=0
i
f (PARSE_EXECUTE : modules/filters/mod_include.c line=147 column=5
P
ARSE_EXECUTE            == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate || : true=0, false=0
|
|
3166                    PARSE_DIRECTIVE_POSTTAIL : modules/filters/mod_include.c line=135 column=5
P
ARSE_DIRECTIVE_POSTTAIL == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
3167                    APR_BUCKET_INSERT_BEFORE(newb : modules/filters/mod_include.c line=3136 column=21
n
ewb, b : modules/filters/mod_include.c line=3106 column=17
b
);
3168                }
3169                else {
3170                    break : pass=0
b
reak; /* END OF STREAM */
3171                }
3172            }
3173            else {
3174                APR_BRIGADE_INSERT_TAIL(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb, b : modules/filters/mod_include.c line=3106 column=17
b
);
3175
3176                if : true=0, false=0
i
f (APR_BUCKET_IS_FLUSH(b : modules/filters/mod_include.c line=3106 column=17
b
)) {
3177                    ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now = : enter=0, leave=0
=
 1;
3178                }
3179
3180                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3181                continue : pass=0
c
ontinue;
3182            }
3183        }
3184
3185        /* enough is enough ... */
3186        if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=3103 column=20
c
txMC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now || : true=0, false=0
|
|
3187            intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>bytes_read : modules/filters/mod_include.c line=178 column=19
b
ytes_read > : true=0, false=0
MC/DC independently affect : true=0, false=0
>TF
 AP_MIN_BYTES_TO_WRITE) {
3188
3189            if : true=0, false=0
i
f (! : true=0, false=0
!
APR_BRIGADE_EMPTY(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb)) {
3190                rv : modules/filters/mod_include.c line=3108 column=18
r
= : pass=0
=
 ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3191                if : true=0, false=0
i
f (rv : modules/filters/mod_include.c line=3108 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
3192                    apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3193                    return : pass=0
r
eturn rv : modules/filters/mod_include.c line=3108 column=18
r
v;
3194                }
3195            }
3196
3197            ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now = : enter=0, leave=0
=
 0;
3198            intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>bytes_read : modules/filters/mod_include.c line=178 column=19
b
ytes_read = : enter=0, leave=0
=
 0;
3199        }
3200
3201        /* read the current bucket data */
3202        len : modules/filters/mod_include.c line=3135 column=20
l
en = : pass=0
=
 0;
3203        if : true=0, false=0
i
f (! : true=0, false=0
!
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>seen_eos : modules/filters/mod_include.c line=174 column=19
s
een_eos) {
3204            if : true=0, false=0
i
f (intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>bytes_read : modules/filters/mod_include.c line=178 column=19
b
ytes_read > : true=0, false=0
>
 0) {
3205                rv : modules/filters/mod_include.c line=3108 column=18
r
= : pass=0
=
 apr_bucket_read(b : modules/filters/mod_include.c line=3106 column=17
b
, &data : modules/filters/mod_include.c line=3134 column=21
d
ata, &len : modules/filters/mod_include.c line=3135 column=20
l
en, APR_NONBLOCK_READ : /usr/include/apr-1/apr_buckets.h line=59 column=5 APR_NONBLOCK_READ);
3206                if : true=0, false=0
i
f (APR_STATUS_IS_EAGAIN(rv : modules/filters/mod_include.c line=3108 column=18
r
v)) {
3207                    ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now = : enter=0, leave=0
=
 1;
3208                    continue : pass=0
c
ontinue;
3209                }
3210            }
3211
3212            if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
len : modules/filters/mod_include.c line=3135 column=20
l
en || : true=0, false=0
|
rv : modules/filters/mod_include.c line=3108 column=18
r
!= : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
= APR_SUCCESS) {
3213                rv : modules/filters/mod_include.c line=3108 column=18
r
= : pass=0
=
 apr_bucket_read(b : modules/filters/mod_include.c line=3106 column=17
b
, &data : modules/filters/mod_include.c line=3134 column=21
d
ata, &len : modules/filters/mod_include.c line=3135 column=20
l
en, APR_BLOCK_READ : /usr/include/apr-1/apr_buckets.h line=58 column=5 APR_BLOCK_READ);
3214            }
3215
3216            if : true=0, false=0
i
f (rv : modules/filters/mod_include.c line=3108 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
3217                apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3218                return : pass=0
r
eturn rv : modules/filters/mod_include.c line=3108 column=18
r
v;
3219            }
3220
3221            intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>bytes_read : modules/filters/mod_include.c line=178 column=19
b
ytes_read += : enter=0, leave=0
+
len : modules/filters/mod_include.c line=3135 column=20
l
en;
3222        }
3223
3224        /* zero length bucket, fetch next one */
3225        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
len : modules/filters/mod_include.c line=3135 column=20
l
en && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>seen_eos : modules/filters/mod_include.c line=174 column=19
s
een_eos) {
3226            b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3227            continue : pass=0
c
ontinue;
3228        }
3229
3230        /*
3231         * it's actually a data containing bucket, start/continue parsing
3232         */
3233
3234        switch : pass=0
s
witch (intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
3235        /* no current tag; search for start sequence */
3236        case : true=0, false=0
c
ase PARSE_PRE_HEAD:
3237            index : modules/filters/mod_include.c line=3135 column=25
i
ndex = : pass=0
=
 find_start_sequence : enter=0, leave=0

find_start_sequence : modules/filters/mod_include.c line=2545 column=19
f
ind_start_sequence(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, data : modules/filters/mod_include.c line=3134 column=21
d
ata, len : modules/filters/mod_include.c line=3135 column=20
l
en);
3238
3239            if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex < : true=0, false=0
<
 len : modules/filters/mod_include.c line=3135 column=20
l
en) {
3240                apr_bucket_split(b : modules/filters/mod_include.c line=3106 column=17
b
index : modules/filters/mod_include.c line=3135 column=25
i
ndex);
3241            }
3242
3243            newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3244            if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING) {
3245                APR_BUCKET_REMOVE(b : modules/filters/mod_include.c line=3106 column=17
b
);
3246                APR_BRIGADE_INSERT_TAIL(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb, b : modules/filters/mod_include.c line=3106 column=17
b
);
3247            }
3248            else {
3249                apr_bucket_delete(b : modules/filters/mod_include.c line=3106 column=17
b
);
3250            }
3251
3252            if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex < : true=0, false=0
<
 len : modules/filters/mod_include.c line=3135 column=20
l
en) {
3253                /* now delete the start_seq stuff from the remaining bucket */
3254                if : true=0, false=0
i
f (PARSE_DIRECTIVE : modules/filters/mod_include.c line=132 column=5
P
ARSE_DIRECTIVE == : true=0, false=0
=
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) { /* full match */
3255                    apr_bucket_split(newb : modules/filters/mod_include.c line=3136 column=21
n
ewb, intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq_pat : modules/filters/mod_include.c line=184 column=19
s
tart_seq_pat-> : enter=0, leave=0
-
>pattern_len : modules/filters/mod_include.c line=169 column=16
p
attern_len);
3256                    ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now = : enter=0, leave=0
=
 1; /* pass pre-tag stuff */
3257                }
3258
3259                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 APR_BUCKET_NEXT(newb : modules/filters/mod_include.c line=3136 column=21
n
ewb);
3260                apr_bucket_delete(newb : modules/filters/mod_include.c line=3136 column=21
n
ewb);
3261            }
3262            else {
3263                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3264            }
3265
3266            break : pass=0
b
reak;
3267
3268        /* we're currently looking for the end of the start sequence */
3269        case : true=0, false=0
c
ase PARSE_HEAD:
3270            index : modules/filters/mod_include.c line=3135 column=25
i
ndex = : pass=0
=
 find_partial_start_sequence : enter=0, leave=0

find_partial_start_sequence : modules/filters/mod_include.c line=2618 column=19
f
ind_partial_start_sequence(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, data : modules/filters/mod_include.c line=3134 column=21
d
ata, len : modules/filters/mod_include.c line=3135 column=20
l
en, &release : modules/filters/mod_include.c line=3135 column=32
r
elease);
3271
3272            /* check if we mismatched earlier and have to release some chars */
3273            if : true=0, false=0
i
f (MC/DC independently affect : true=0, false=0

release : modules/filters/mod_include.c line=3135 column=32
rTF
elease && : true=0, false=0
&
& (ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
3274                char *to_release = apr_pmemdup : enter=0, leave=0

apr_pmemdup : /usr/include/apr-1/apr_strings.h line=131 column=21
a
pr_pmemdup(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq, release : modules/filters/mod_include.c line=3135 column=32
r
elease);
3275
3276                newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 apr_bucket_pool_create : enter=0, leave=0

apr_bucket_pool_create : /usr/include/apr-1/apr_buckets.h line=1373 column=27
a
pr_bucket_pool_create(to_release : modules/filters/mod_include.c line=3274 column=23
t
o_release, release : modules/filters/mod_include.c line=3135 column=32
r
elease, ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool,
3277                                              f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
3278                APR_BRIGADE_INSERT_TAIL(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb, newb : modules/filters/mod_include.c line=3136 column=21
n
ewb);
3279            }
3280
3281            if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) { /* any match */
3282                /* now delete the start_seq stuff from the remaining bucket */
3283                if : true=0, false=0
i
f (PARSE_DIRECTIVE : modules/filters/mod_include.c line=132 column=5
P
ARSE_DIRECTIVE == : true=0, false=0
=
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) { /* final match */
3284                    apr_bucket_split(b : modules/filters/mod_include.c line=3106 column=17
b
index : modules/filters/mod_include.c line=3135 column=25
i
ndex);
3285                    ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flush_now : modules/filters/mod_include.h line=86 column=18
f
lush_now = : enter=0, leave=0
=
 1; /* pass pre-tag stuff */
3286                }
3287                newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3288                apr_bucket_delete(b : modules/filters/mod_include.c line=3106 column=17
b
);
3289                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3290            }
3291
3292            break : pass=0
b
reak;
3293
3294        /* we're currently grabbing the directive name */
3295        case : true=0, false=0
c
ase PARSE_DIRECTIVE:
3296        case : true=0, false=0
c
ase PARSE_DIRECTIVE_POSTNAME:
3297        case : true=0, false=0
c
ase PARSE_DIRECTIVE_TAIL:
3298        case : true=0, false=0
c
ase PARSE_DIRECTIVE_POSTTAIL:
3299            index : modules/filters/mod_include.c line=3135 column=25
i
ndex = : pass=0
=
 find_directive : enter=0, leave=0

find_directive : modules/filters/mod_include.c line=2714 column=19
f
ind_directive(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, data : modules/filters/mod_include.c line=3134 column=21
d
ata, len : modules/filters/mod_include.c line=3135 column=20
l
en, &store : modules/filters/mod_include.c line=3137 column=16
s
tore, &store_len : modules/filters/mod_include.c line=3138 column=21
s
tore_len);
3300
3301            if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) {
3302                apr_bucket_split(b : modules/filters/mod_include.c line=3106 column=17
b
index : modules/filters/mod_include.c line=3135 column=25
i
ndex);
3303                newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3304            }
3305
3306            if : true=0, false=0
i
f (store : modules/filters/mod_include.c line=3137 column=16
s
tore) {
3307                if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) {
3308                    APR_BUCKET_REMOVE(b : modules/filters/mod_include.c line=3106 column=17
b
);
3309                    apr_bucket_setaside(b : modules/filters/mod_include.c line=3106 column=17
b
r : modules/filters/mod_include.c line=3105 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool);
3310                    APR_BRIGADE_INSERT_TAIL(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb, b : modules/filters/mod_include.c line=3106 column=17
b
);
3311                    b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3312                }
3313
3314                /* time for cleanup? */
3315                if : true=0, false=0
i
f (store : modules/filters/mod_include.c line=3137 column=16
s
tore != : true=0, false=0
!
= &magic : modules/filters/mod_include.c line=3109 column=11
m
agic) {
3316                    apr_brigade_pflatten : enter=0, leave=0

apr_brigade_pflatten : /usr/include/apr-1/apr_buckets.h line=758 column=27
a
pr_brigade_pflatten(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb, store : modules/filters/mod_include.c line=3137 column=16
s
tore, store_len : modules/filters/mod_include.c line=3138 column=21
s
tore_len,
3317                                         ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool);
3318                    apr_brigade_cleanup : enter=0, leave=0

apr_brigade_cleanup : /usr/include/apr-1/apr_buckets.h line=679 column=27
a
pr_brigade_cleanup(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb);
3319                }
3320            }
3321            else if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) {
3322                apr_bucket_delete(b : modules/filters/mod_include.c line=3106 column=17
b
);
3323                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3324            }
3325
3326            break : pass=0
b
reak;
3327
3328        /* skip WS and find out what comes next (arg or end_seq) */
3329        case : true=0, false=0
c
ase PARSE_PRE_ARG:
3330            index : modules/filters/mod_include.c line=3135 column=25
i
ndex = : pass=0
=
 find_arg_or_tail : enter=0, leave=0

find_arg_or_tail : modules/filters/mod_include.c line=2814 column=19
f
ind_arg_or_tail(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, data : modules/filters/mod_include.c line=3134 column=21
d
ata, len : modules/filters/mod_include.c line=3135 column=20
l
en);
3331
3332            if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) { /* skipped whitespaces */
3333                if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex < : true=0, false=0
<
 len : modules/filters/mod_include.c line=3135 column=20
l
en) {
3334                    apr_bucket_split(b : modules/filters/mod_include.c line=3106 column=17
b
index : modules/filters/mod_include.c line=3135 column=25
i
ndex);
3335                }
3336                newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3337                apr_bucket_delete(b : modules/filters/mod_include.c line=3106 column=17
b
);
3338                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3339            }
3340
3341            break : pass=0
b
reak;
3342
3343        /* currently parsing name[=val] */
3344        case : true=0, false=0
c
ase PARSE_ARG:
3345        case : true=0, false=0
c
ase PARSE_ARG_NAME:
3346        case : true=0, false=0
c
ase PARSE_ARG_POSTNAME:
3347        case : true=0, false=0
c
ase PARSE_ARG_EQ:
3348        case : true=0, false=0
c
ase PARSE_ARG_PREVAL:
3349        case : true=0, false=0
c
ase PARSE_ARG_VAL:
3350        case : true=0, false=0
c
ase PARSE_ARG_VAL_ESC:
3351        case : true=0, false=0
c
ase PARSE_ARG_POSTVAL:
3352            index : modules/filters/mod_include.c line=3135 column=25
i
ndex = : pass=0
=
 find_argument : enter=0, leave=0

find_argument : modules/filters/mod_include.c line=2880 column=19
f
ind_argument(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, data : modules/filters/mod_include.c line=3134 column=21
d
ata, len : modules/filters/mod_include.c line=3135 column=20
l
en, &store : modules/filters/mod_include.c line=3137 column=16
s
tore, &store_len : modules/filters/mod_include.c line=3138 column=21
s
tore_len);
3353
3354            if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) {
3355                apr_bucket_split(b : modules/filters/mod_include.c line=3106 column=17
b
index : modules/filters/mod_include.c line=3135 column=25
i
ndex);
3356                newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3357            }
3358
3359            if : true=0, false=0
i
f (store : modules/filters/mod_include.c line=3137 column=16
s
tore) {
3360                if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) {
3361                    APR_BUCKET_REMOVE(b : modules/filters/mod_include.c line=3106 column=17
b
);
3362                    apr_bucket_setaside(b : modules/filters/mod_include.c line=3106 column=17
b
r : modules/filters/mod_include.c line=3105 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool);
3363                    APR_BRIGADE_INSERT_TAIL(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb, b : modules/filters/mod_include.c line=3106 column=17
b
);
3364                    b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3365                }
3366
3367                /* time for cleanup? */
3368                if : true=0, false=0
i
f (store : modules/filters/mod_include.c line=3137 column=16
s
tore != : true=0, false=0
!
= &magic : modules/filters/mod_include.c line=3109 column=11
m
agic) {
3369                    apr_brigade_pflatten : enter=0, leave=0

apr_brigade_pflatten : /usr/include/apr-1/apr_buckets.h line=758 column=27
a
pr_brigade_pflatten(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb, store : modules/filters/mod_include.c line=3137 column=16
s
tore, store_len : modules/filters/mod_include.c line=3138 column=21
s
tore_len,
3370                                         ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool);
3371                    apr_brigade_cleanup : enter=0, leave=0

apr_brigade_cleanup : /usr/include/apr-1/apr_buckets.h line=679 column=27
a
pr_brigade_cleanup(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb);
3372                }
3373            }
3374            else if : true=0, false=0
i
f (index : modules/filters/mod_include.c line=3135 column=25
i
ndex) {
3375                apr_bucket_delete(b : modules/filters/mod_include.c line=3106 column=17
b
);
3376                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3377            }
3378
3379            break : pass=0
b
reak;
3380
3381        /* try to match end_seq at current pos. */
3382        case : true=0, false=0
c
ase PARSE_TAIL:
3383        case : true=0, false=0
c
ase PARSE_TAIL_SEQ:
3384            index : modules/filters/mod_include.c line=3135 column=25
i
ndex = : pass=0
=
 find_tail : enter=0, leave=0

find_tail : modules/filters/mod_include.c line=2838 column=19
f
ind_tail(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, data : modules/filters/mod_include.c line=3134 column=21
d
ata, len : modules/filters/mod_include.c line=3135 column=20
l
en);
3385
3386            switch : pass=0
s
witch (intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
3387            case : true=0, false=0
c
ase PARSE_EXECUTE:  /* full match */
3388                apr_bucket_split(b : modules/filters/mod_include.c line=3106 column=17
b
index : modules/filters/mod_include.c line=3135 column=25
i
ndex);
3389                newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3390                apr_bucket_delete(b : modules/filters/mod_include.c line=3106 column=17
b
);
3391                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3392                break : pass=0
b
reak;
3393
3394            case : true=0, false=0
c
ase PARSE_ARG:      /* no match */
3395                /* PARSE_ARG must reparse at the beginning */
3396                APR_BRIGADE_PREPEND(bb : modules/filters/mod_include.c line=3101 column=77
b
b, intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb);
3397                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 APR_BRIGADE_FIRST(bb : modules/filters/mod_include.c line=3101 column=77
b
b);
3398                break : pass=0
b
reak;
3399
3400            default : true=0, false=0
d
efault:             /* partial match */
3401                newb : modules/filters/mod_include.c line=3136 column=21
n
ewb = : pass=0
=
 APR_BUCKET_NEXT(b : modules/filters/mod_include.c line=3106 column=17
b
);
3402                APR_BUCKET_REMOVE(b : modules/filters/mod_include.c line=3106 column=17
b
);
3403                apr_bucket_setaside(b : modules/filters/mod_include.c line=3106 column=17
b
r : modules/filters/mod_include.c line=3105 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool);
3404                APR_BRIGADE_INSERT_TAIL(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb, b : modules/filters/mod_include.c line=3106 column=17
b
);
3405                b : modules/filters/mod_include.c line=3106 column=17
b
 = : pass=0
=
 newb : modules/filters/mod_include.c line=3136 column=21
n
ewb;
3406                break : pass=0
b
reak;
3407            }
3408
3409            break : pass=0
b
reak;
3410
3411        /* now execute the parsed directive, cleanup the space and
3412         * start again with PARSE_PRE_HEAD
3413         */
3414        case : true=0, false=0
c
ase PARSE_EXECUTE:
3415            /* if there was an error, it was already logged; just stop here */
3416            if : true=0, false=0
i
f (intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>error : modules/filters/mod_include.c line=175 column=19
e
rror) {
3417                if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING) {
3418                    SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, f : modules/filters/mod_include.c line=3101 column=54
f
pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3419                    intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>error : modules/filters/mod_include.c line=175 column=19
e
rror = : enter=0, leave=0
=
 0;
3420                }
3421            }
3422            else {
3423                include_handler_fn_t *handle_func;
3424
3425                handle_func : modules/filters/mod_include.c line=3423 column=39
h
andle_func = : pass=0
=
3426                    (include_handler_fn_t *)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(include_handlers : modules/filters/mod_include.c line=449 column=20
i
nclude_handlers, intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective,
3427                                                         intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len);
3428
3429                if : true=0, false=0
i
f (handle_func : modules/filters/mod_include.c line=3423 column=39
h
andle_func) {
3430                    DEBUG_INIT(ctx, f, pass_bb);
3431                    rv : modules/filters/mod_include.c line=3108 column=18
r
= : pass=0
=
 handle_func : enter=0, leave=0

handle_func : modules/filters/mod_include.c line=3423 column=39
h
andle_func(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, f : modules/filters/mod_include.c line=3101 column=54
f
pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3432                    if : true=0, false=0
i
f (rv : modules/filters/mod_include.c line=3108 column=18
r
!= : true=0, false=0
!
= APR_SUCCESS) {
3433                        apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3434                        return : pass=0
r
eturn rv : modules/filters/mod_include.c line=3108 column=18
r
v;
3435                    }
3436                }
3437                else {
3438                    ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=3105 column=18
r
,
3439                                  "unknown directive \"%s\" in parsed doc %s",
3440                                  apr_pstrmemdup : enter=0, leave=0

apr_pstrmemdup : /usr/include/apr-1/apr_strings.h line=109 column=21
a
pr_pstrmemdup(r : modules/filters/mod_include.c line=3105 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>directive : modules/filters/mod_include.c line=187 column=19
d
irective,
3441                                                 intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>directive_len : modules/filters/mod_include.c line=188 column=19
d
irective_len),
3442                                                 r : modules/filters/mod_include.c line=3105 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
3443                    if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING) {
3444                        SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, f : modules/filters/mod_include.c line=3101 column=54
f
pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3445                    }
3446                }
3447            }
3448
3449            /* cleanup */
3450            apr_pool_clear : enter=0, leave=0

apr_pool_clear : /usr/include/apr-1/apr_pools.h line=356 column=19
a
pr_pool_clear(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool);
3451            apr_brigade_cleanup : enter=0, leave=0

apr_brigade_cleanup : /usr/include/apr-1/apr_buckets.h line=679 column=27
a
pr_brigade_cleanup(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb);
3452
3453            /* Oooof. Done here, start next round */
3454            intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_PRE_HEAD : modules/filters/mod_include.c line=130 column=5
P
ARSE_PRE_HEAD;
3455            break : pass=0
b
reak;
3456
3457        } /* switch(ctx->state) */
3458
3459    } /* while(brigade) */
3460
3461    /* End of stream. Final cleanup */
3462    if : true=0, false=0
i
f (intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>seen_eos : modules/filters/mod_include.c line=174 column=19
s
een_eos) {
3463        if : true=0, false=0
i
f (PARSE_HEAD : modules/filters/mod_include.c line=131 column=5
P
ARSE_HEAD == : true=0, false=0
=
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
3464            if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING) {
3465                char *to_release = apr_pmemdup : enter=0, leave=0

apr_pmemdup : /usr/include/apr-1/apr_strings.h line=131 column=21
a
pr_pmemdup(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq,
3466                                                          intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos);
3467
3468                APR_BRIGADE_INSERT_TAIL(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb,
3469                                        apr_bucket_pool_create : enter=0, leave=0

apr_bucket_pool_create : /usr/include/apr-1/apr_buckets.h line=1373 column=27
a
pr_bucket_pool_create(to_release : modules/filters/mod_include.c line=3465 column=23
t
o_release,
3470                                        intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>parse_pos : modules/filters/mod_include.c line=177 column=19
p
arse_pos, ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool,
3471                                        f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc));
3472            }
3473        }
3474        else if : true=0, false=0
i
f (PARSE_PRE_HEAD : modules/filters/mod_include.c line=130 column=5
P
ARSE_PRE_HEAD != : true=0, false=0
!
intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate) {
3475            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_ERR, 0, r : modules/filters/mod_include.c line=3105 column=18
r
,
3476                          "SSI directive was not properly finished at the end "
3477                          "of parsed document %s", r : modules/filters/mod_include.c line=3105 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
3478            if : true=0, false=0
i
f (ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING) {
3479                SSI_CREATE_ERROR_BUCKET(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx, f : modules/filters/mod_include.c line=3101 column=54
f
pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3480            }
3481        }
3482
3483        if : true=0, false=0
i
f (! : true=0, false=0
!
(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags & : pass=0
&
 SSI_FLAG_PRINTING)) {
3484            ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r : modules/filters/mod_include.c line=3105 column=18
r
,
3485                          "missing closing endif directive in parsed document"
3486                          " %s", r : modules/filters/mod_include.c line=3105 column=18
r
-> : enter=0, leave=0
-
>filename : include/httpd.h line=948 column=11
f
ilename);
3487        }
3488
3489        /* cleanup our temporary memory */
3490        apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(intern : modules/filters/mod_include.c line=3104 column=30
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb);
3491        apr_pool_destroy : enter=0, leave=0

apr_pool_destroy : /usr/include/apr-1/apr_pools.h line=385 column=19
a
pr_pool_destroy(ctx : modules/filters/mod_include.c line=3103 column=20
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool);
3492
3493        /* don't forget to finally insert the EOS bucket */
3494        APR_BRIGADE_INSERT_TAIL(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb, b : modules/filters/mod_include.c line=3106 column=17
b
);
3495    }
3496
3497    /* if something's left over, pass it along */
3498    if : true=0, false=0
i
f (! : true=0, false=0
!
APR_BRIGADE_EMPTY(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb)) {
3499        rv : modules/filters/mod_include.c line=3108 column=18
r
= : pass=0
=
 ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(f : modules/filters/mod_include.c line=3101 column=54
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3500    }
3501    else {
3502        rv : modules/filters/mod_include.c line=3108 column=18
r
= : pass=0
=
 APR_SUCCESS;
3503        apr_brigade_destroy : enter=0, leave=0

apr_brigade_destroy : /usr/include/apr-1/apr_buckets.h line=666 column=27
a
pr_brigade_destroy(pass_bb : modules/filters/mod_include.c line=3107 column=25
p
ass_bb);
3504    }
3505    return : pass=0
r
eturn rv : modules/filters/mod_include.c line=3108 column=18
r
v;
3506}
3507
3508
3509/*
3510 * +-------------------------------------------------------+
3511 * |                                                       |
3512 * |                     Runtime Hooks
3513 * |                                                       |
3514 * +-------------------------------------------------------+
3515 */
3516
3517static int includes_setup : call=0
i
ncludes_setup(ap_filter_t *f)
3518{
3519    include_dir_config *conf = ap_get_module_config(f : modules/filters/mod_include.c line=3517 column=40
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config,
3520                                                    &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module);
3521
3522    /* When our xbithack value isn't set to full or our platform isn't
3523     * providing group-level protection bits or our group-level bits do not
3524     * have group-execite on, we will set the no_local_copy value to 1 so
3525     * that we will not send 304s.
3526     */
3527    if : true=0, false=0
i
f ((conf : modules/filters/mod_include.c line=3519 column=25
c
onf-> : enter=0, leave=0
-
>xbithack : modules/filters/mod_include.c line=117 column=17
x
bithack != : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
XBITHACK_FULL : modules/filters/mod_include.c line=110 column=5
X
BITHACK_FULL)
3528        || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
(f : modules/filters/mod_include.c line=3517 column=40
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.valid : /usr/include/apr-1/apr_file_info.h line=179 column=17 valid & : pass=0
&
 APR_FINFO_GPROT)
3529        || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
(f : modules/filters/mod_include.c line=3517 column=40
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.protection : /usr/include/apr-1/apr_file_info.h line=181 column=21 protection & : pass=0
&
 APR_GEXECUTE)) {
3530        f : modules/filters/mod_include.c line=3517 column=40
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>no_local_copy : include/httpd.h line=937 column=9
n
o_local_copy = : enter=0, leave=0
=
 1;
3531    }
3532
3533    /* Don't allow ETag headers to be generated - see RFC2616 - 13.3.4.
3534     * We don't know if we are going to be including a file or executing
3535     * a program - in either case a strong ETag header will likely be invalid.
3536     */
3537    if : true=0, false=0
i
f (! : true=0, false=0
!
conf : modules/filters/mod_include.c line=3519 column=25
c
onf-> : enter=0, leave=0
-
>etag : modules/filters/mod_include.c line=120 column=9
e
tag) {
3538        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(f : modules/filters/mod_include.c line=3517 column=40
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>notes : include/httpd.h line=910 column=18
n
otes, "no-etag", "");
3539    }
3540
3541    return : pass=0
r
eturn OK;
3542}
3543
3544static apr_status_t includes_filter : call=0
i
ncludes_filter(ap_filter_t *f, apr_bucket_brigade *b)
3545{
3546    request_rec *r = f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
;
3547    include_ctx_t *ctx = f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx;
3548    request_rec *parent;
3549    include_dir_config *conf = ap_get_module_config(r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config,
3550                                                    &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module);
3551
3552    include_server_config *sconf= ap_get_module_config(r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>server : include/httpd.h line=784 column=17
s
erver-> : enter=0, leave=0
-
>module_config : include/httpd.h line=1207 column=30
m
odule_config,
3553                                                       &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module);
3554
3555    if : true=0, false=0
i
f (! : true=0, false=0
!
(ap_allow_options : enter=0, leave=0

ap_allow_options : include/http_core.h line=152 column=17
a
p_allow_options(r : modules/filters/mod_include.c line=3546 column=18
r
& : pass=0
&
 OPT_INCLUDES)) {
3556        ap_log_rerror : enter=0, leave=0

ap_log_rerror : include/http_log.h line=219 column=18
a
p_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r : modules/filters/mod_include.c line=3546 column=18
r
,
3557                      "mod_include: Options +Includes (or IncludesNoExec) "
3558                      "wasn't set, INCLUDES filter removed");
3559        ap_remove_output_filter : enter=0, leave=0

ap_remove_output_filter : include/util_filter.h line=469 column=18
a
p_remove_output_filter(f : modules/filters/mod_include.c line=3544 column=50
f
);
3560        return : pass=0
r
eturn ap_pass_brigade : enter=0, leave=0

ap_pass_brigade : include/util_filter.h line=312 column=26
a
p_pass_brigade(f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>next : include/util_filter.h line=271 column=18
n
ext, b : modules/filters/mod_include.c line=3544 column=73
b
);
3561    }
3562
3563    if : true=0, false=0
i
f (! : true=0, false=0
!
f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx) {
3564        struct ssi_internal_ctx *intern;
3565
3566        /* create context for this filter */
3567        f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>ctx : include/util_filter.h line=268 column=11
c
tx = : enter=0, leave=0
=
 ctx : modules/filters/mod_include.c line=3547 column=20
c
tx = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, sizeof(*ctx));
3568        ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>intern : modules/filters/mod_include.h line=98 column=30
i
ntern = : enter=0, leave=0
=
 intern : modules/filters/mod_include.c line=3564 column=34
i
ntern = : pass=0
=
 apr_palloc : enter=0, leave=0

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, sizeof(*ctx->intern));
3569        ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool = : enter=0, leave=0
=
 r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool;
3570        apr_pool_create(&ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>dpool : modules/filters/mod_include.h line=74 column=18
d
pool, ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool);
3571
3572        /* runtime data */
3573        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>tmp_bb : modules/filters/mod_include.c line=180 column=25
t
mp_bb = : enter=0, leave=0
=
 apr_brigade_create : enter=0, leave=0

apr_brigade_create : /usr/include/apr-1/apr_buckets.h line=658 column=35
a
pr_brigade_create(ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>c : include/util_filter.h line=282 column=15
c
-> : enter=0, leave=0
-
>bucket_alloc : include/httpd.h line=1103 column=32
b
ucket_alloc);
3574        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>seen_eos : modules/filters/mod_include.c line=174 column=19
s
een_eos = : enter=0, leave=0
=
 0;
3575        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>state : modules/filters/mod_include.c line=173 column=19
s
tate = : enter=0, leave=0
=
 PARSE_PRE_HEAD : modules/filters/mod_include.c line=130 column=5
P
ARSE_PRE_HEAD;
3576        ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags = : enter=0, leave=0
=
 (SSI_FLAG_PRINTING | : pass=0
|
 SSI_FLAG_COND_TRUE);
3577        if : true=0, false=0
i
f (ap_allow_options : enter=0, leave=0

ap_allow_options : include/http_core.h line=152 column=17
a
p_allow_options(r : modules/filters/mod_include.c line=3546 column=18
r
& : pass=0
&
 OPT_INCNOEXEC) {
3578            ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>flags : modules/filters/mod_include.h line=77 column=18
f
lags |= : enter=0, leave=0
|
= SSI_FLAG_NO_EXEC;
3579        }
3580        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>accessenable : modules/filters/mod_include.c line=198 column=17
a
ccessenable = : enter=0, leave=0
=
 conf : modules/filters/mod_include.c line=3549 column=25
c
onf-> : enter=0, leave=0
-
>accessenable : modules/filters/mod_include.c line=118 column=9
a
ccessenable;
3581
3582        ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>if_nesting_level : modules/filters/mod_include.h line=80 column=18
i
f_nesting_level = : enter=0, leave=0
=
 0;
3583        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>re : modules/filters/mod_include.c line=193 column=19
r
= : enter=0, leave=0
=
 NULL;
3584
3585        ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>error_str : modules/filters/mod_include.h line=92 column=18
e
rror_str = : enter=0, leave=0
=
 conf : modules/filters/mod_include.c line=3549 column=25
c
onf-> : enter=0, leave=0
-
>default_error_msg : modules/filters/mod_include.c line=114 column=17
d
efault_error_msg;
3586        ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>time_str : modules/filters/mod_include.h line=95 column=18
t
ime_str = : enter=0, leave=0
=
 conf : modules/filters/mod_include.c line=3549 column=25
c
onf-> : enter=0, leave=0
-
>default_time_fmt : modules/filters/mod_include.c line=115 column=17
d
efault_time_fmt;
3587        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq  = : enter=0, leave=0
=
 sconf : modules/filters/mod_include.c line=3552 column=28
s
conf-> : enter=0, leave=0
-
>default_start_tag : modules/filters/mod_include.c line=124 column=17
d
efault_start_tag;
3588        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>start_seq_pat : modules/filters/mod_include.c line=184 column=19
s
tart_seq_pat = : enter=0, leave=0
=
 bndm_compile : enter=0, leave=0

bndm_compile : modules/filters/mod_include.c line=2472 column=16
b
ndm_compile(ctx : modules/filters/mod_include.c line=3547 column=20
c
tx-> : enter=0, leave=0
-
>pool : modules/filters/mod_include.h line=71 column=18
p
ool, intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq,
3589                                             strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>start_seq : modules/filters/mod_include.c line=183 column=19
s
tart_seq));
3590        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>end_seq : modules/filters/mod_include.c line=185 column=19
e
nd_seq = : enter=0, leave=0
=
 sconf : modules/filters/mod_include.c line=3552 column=28
s
conf-> : enter=0, leave=0
-
>default_end_tag : modules/filters/mod_include.c line=125 column=17
d
efault_end_tag;
3591        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>end_seq_len : modules/filters/mod_include.c line=186 column=19
e
nd_seq_len = : enter=0, leave=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>end_seq : modules/filters/mod_include.c line=185 column=19
e
nd_seq);
3592        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>undefined_echo : modules/filters/mod_include.c line=195 column=19
u
ndefined_echo = : enter=0, leave=0
=
 conf : modules/filters/mod_include.c line=3549 column=25
c
onf-> : enter=0, leave=0
-
>undefined_echo : modules/filters/mod_include.c line=116 column=17
u
ndefined_echo;
3593        intern : modules/filters/mod_include.c line=3564 column=34
i
ntern-> : enter=0, leave=0
-
>undefined_echo_len : modules/filters/mod_include.c line=196 column=19
u
ndefined_echo_len = : enter=0, leave=0
=
 strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(conf : modules/filters/mod_include.c line=3549 column=25
c
onf-> : enter=0, leave=0
-
>undefined_echo : modules/filters/mod_include.c line=116 column=17
u
ndefined_echo);
3594    }
3595
3596    if : true=0, false=0
i
f ((parent : modules/filters/mod_include.c line=3548 column=18
p
arent = : pass=0
=
 ap_get_module_config(r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>request_config : include/httpd.h line=979 column=30
r
equest_config, &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module))) {
3597        /* Kludge --- for nested includes, we want to keep the subprocess
3598         * environment of the base document (for compatibility); that means
3599         * torquing our own last_modified date as well so that the
3600         * LAST_MODIFIED variable gets reset to the proper value if the
3601         * nested document resets <!--#config timefmt -->.
3602         */
3603        r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env = : enter=0, leave=0
=
 r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>main : include/httpd.h line=793 column=18
m
ain-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env;
3604        apr_pool_join(r->main->pool, r->pool);
3605        r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16 mtime = : pass=0
=
 r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>main : include/httpd.h line=793 column=18
m
ain-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16 mtime;
3606    }
3607    else {
3608        /* we're not a nested include, so we create an initial
3609         * environment */
3610        ap_add_common_vars : enter=0, leave=0

ap_add_common_vars : include/util_script.h line=77 column=18
a
p_add_common_vars(r : modules/filters/mod_include.c line=3546 column=18
r
);
3611        ap_add_cgi_vars : enter=0, leave=0

ap_add_cgi_vars : include/util_script.h line=70 column=18
a
p_add_cgi_vars(r : modules/filters/mod_include.c line=3546 column=18
r
);
3612        add_include_vars : enter=0, leave=0

add_include_vars : modules/filters/mod_include.c line=589 column=13
a
dd_include_vars(r : modules/filters/mod_include.c line=3546 column=18
r
);
3613    }
3614    /* Always unset the content-length.  There is no way to know if
3615     * the content will be modified at some point by send_parsed_content.
3616     * It is very possible for us to not find any content in the first
3617     * 9k of the file, but still have to modify the content of the file.
3618     * If we are going to pass the file through send_parsed_content, then
3619     * the content-length should just be unset.
3620     */
3621    apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Content-Length");
3622
3623    /* Always unset the Last-Modified field - see RFC2616 - 13.3.4.
3624     * We don't know if we are going to be including a file or executing
3625     * a program which may change the Last-Modified header or make the
3626     * content completely dynamic.  Therefore, we can't support these
3627     * headers.
3628     *
3629     * Exception: XBitHack full means we *should* set the
3630     * Last-Modified field.
3631     *
3632     * SSILastModified on means we *should* set the Last-Modified field
3633     * if not present, or respect an existing value if present.
3634     */
3635
3636    /* Must we respect the last modified header? By default, no */
3637    if : true=0, false=0
i
f (conf : modules/filters/mod_include.c line=3549 column=25
c
onf-> : enter=0, leave=0
-
>lastmodified : modules/filters/mod_include.c line=119 column=9
l
astmodified) {
3638
3639        /* update the last modified if we have a valid time, and only if
3640         * we don't already have a valid last modified.
3641         */
3642        if : true=0, false=0
i
f (r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.valid : /usr/include/apr-1/apr_file_info.h line=179 column=17 valid & : pass=0
&
 APR_FINFO_MTIME
3643                && : true=0, false=0
&
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
apr_table_get : enter=0, leave=0

apr_table_get : /usr/include/apr-1/apr_tables.h line=258 column=27
a
pr_table_get(f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Last-Modified")) {
3644            ap_update_mtime : enter=0, leave=0

ap_update_mtime : include/http_request.h line=198 column=18
a
p_update_mtime(r : modules/filters/mod_include.c line=3546 column=18
r
r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16 mtime);
3645            ap_set_last_modified : enter=0, leave=0

ap_set_last_modified : include/http_protocol.h line=171 column=18
a
p_set_last_modified(r : modules/filters/mod_include.c line=3546 column=18
r
);
3646        }
3647
3648    }
3649
3650    /* Assure the platform supports Group protections */
3651    else if : true=0, false=0
i
f (((conf : modules/filters/mod_include.c line=3549 column=25
c
onf-> : enter=0, leave=0
-
>xbithack : modules/filters/mod_include.c line=117 column=17
x
bithack == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
XBITHACK_FULL : modules/filters/mod_include.c line=110 column=5
X
BITHACK_FULL)
3652        && : true=0, false=0
&
& (r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.valid : /usr/include/apr-1/apr_file_info.h line=179 column=17 valid & : pass=0
&
 APR_FINFO_GPROT)
3653        && : true=0, false=0
&
& (r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.protection : /usr/include/apr-1/apr_file_info.h line=181 column=21 protection & : pass=0
&
 APR_GEXECUTE))) {
3654        ap_update_mtime : enter=0, leave=0

ap_update_mtime : include/http_request.h line=198 column=18
a
p_update_mtime(r : modules/filters/mod_include.c line=3546 column=18
r
r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.mtime : /usr/include/apr-1/apr_file_info.h line=204 column=16 mtime);
3655        ap_set_last_modified : enter=0, leave=0

ap_set_last_modified : include/http_protocol.h line=171 column=18
a
p_set_last_modified(r : modules/filters/mod_include.c line=3546 column=18
r
);
3656    }
3657    else {
3658        apr_table_unset : enter=0, leave=0

apr_table_unset : /usr/include/apr-1/apr_tables.h line=290 column=19
a
pr_table_unset(f : modules/filters/mod_include.c line=3544 column=50
f
-> : enter=0, leave=0
-
>r : include/util_filter.h line=277 column=18
r
-> : enter=0, leave=0
-
>headers_out : include/httpd.h line=903 column=18
h
eaders_out, "Last-Modified");
3659    }
3660
3661    /* add QUERY stuff to env cause it ain't yet */
3662    if : true=0, false=0
i
f (r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs) {
3663        char *arg_copy = apr_pstrdup : enter=0, leave=0

apr_pstrdup : /usr/include/apr-1/apr_strings.h line=95 column=21
a
pr_pstrdup(r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs);
3664
3665        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/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env, "QUERY_STRING", r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>args : include/httpd.h line=955 column=11
a
rgs);
3666        ap_unescape_url : enter=0, leave=0

ap_unescape_url : include/httpd.h line=1455 column=17
a
p_unescape_url(arg_copy : modules/filters/mod_include.c line=3663 column=15
a
rg_copy);
3667        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/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>subprocess_env : include/httpd.h line=908 column=18
s
ubprocess_env, "QUERY_STRING_UNESCAPED",
3668                  ap_escape_shell_cmd : enter=0, leave=0

ap_escape_shell_cmd : include/httpd.h line=1557 column=20
a
p_escape_shell_cmd(r : modules/filters/mod_include.c line=3546 column=18
r
-> : enter=0, leave=0
-
>pool : include/httpd.h line=780 column=17
p
ool, arg_copy : modules/filters/mod_include.c line=3663 column=15
a
rg_copy));
3669    }
3670
3671    return : pass=0
r
eturn send_parsed_content : enter=0, leave=0

send_parsed_content : modules/filters/mod_include.c line=3101 column=21
s
end_parsed_content(f : modules/filters/mod_include.c line=3544 column=50
f
b : modules/filters/mod_include.c line=3544 column=73
b
);
3672}
3673
3674static int include_fixup : call=0
i
nclude_fixup(request_rec *r)
3675{
3676    include_dir_config *conf;
3677
3678    conf : modules/filters/mod_include.c line=3676 column=25
c
onf = : pass=0
=
 ap_get_module_config(r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>per_dir_config : include/httpd.h line=977 column=30
p
er_dir_config, &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module);
3679
3680    if : true=0, false=0
i
f (r : modules/filters/mod_include.c line=3674 column=39
r
MC/DC independently affect : true=0, false=0
-> : enter=0, leave=0
-TF
>handler : include/httpd.h line=919 column=17
h
andler && : true=0, false=0
&
& (strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
s
trcmp(r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>handler : include/httpd.h line=919 column=17
h
andler, "server-parsed") == : true=0, false=0
MC/DC independently affect : true=0, false=0
=TF
= 0))
3681    {
3682        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type || : true=0, false=0
|
! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
* dereference : enter=0, leave=0
*
r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type) {
3683            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/filters/mod_include.c line=3674 column=39
r
, "text/html");
3684        }
3685        r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>handler : include/httpd.h line=919 column=17
h
andler = : enter=0, leave=0
=
 "default-handler";
3686    }
3687    else
3688#if defined(OS2) || defined(WIN32) || defined(NETWARE)
3689    /* These OS's don't support xbithack. This is being worked on. */
3690    {
3691        return DECLINED;
3692    }
3693#else
3694    {
3695        if : true=0, false=0
i
f (conf : modules/filters/mod_include.c line=3676 column=25
c
onf-> : enter=0, leave=0
-
>xbithack : modules/filters/mod_include.c line=117 column=17
x
bithack == : true=0, false=0
=
XBITHACK_OFF : modules/filters/mod_include.c line=108 column=5
X
BITHACK_OFF) {
3696            return : pass=0
r
eturn DECLINED;
3697        }
3698
3699        if : true=0, false=0
i
f (! : true=0, false=0
!
(r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>finfo : include/httpd.h line=957 column=17
f
info.protection : /usr/include/apr-1/apr_file_info.h line=181 column=21 protection & : pass=0
&
 APR_UEXECUTE)) {
3700            return : pass=0
r
eturn DECLINED;
3701        }
3702
3703        if : true=0, false=0
i
f (! : true=0, false=0
MC/DC independently affect : true=0, false=0
!TF
r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type || : true=0, false=0
|
MC/DC independently affect : true=0, false=0
strcmp : enter=0, leave=0

strcmp : /usr/include/string.h line=143 column=12
sTF
trcmp(r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>content_type : include/httpd.h line=917 column=17
c
ontent_type, "text/html")) {
3704            return : pass=0
r
eturn DECLINED;
3705        }
3706    }
3707#endif
3708
3709    /* We always return declined, because the default handler actually
3710     * serves the file.  All we have to do is add the filter.
3711     */
3712    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("INCLUDES", NULL, r : modules/filters/mod_include.c line=3674 column=39
r
r : modules/filters/mod_include.c line=3674 column=39
r
-> : enter=0, leave=0
-
>connection : include/httpd.h line=782 column=15
c
onnection);
3713    return : pass=0
r
eturn DECLINED;
3714}
3715
3716
3717/*
3718 * +-------------------------------------------------------+
3719 * |                                                       |
3720 * |                Configuration Handling
3721 * |                                                       |
3722 * +-------------------------------------------------------+
3723 */
3724
3725static void *create_includes_dir_config : call=1
c
reate_includes_dir_config(apr_pool_t *p, char *dummy)
3726{
3727    include_dir_config *result = apr_palloc : enter=1, leave=1

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : modules/filters/mod_include.c line=3725 column=53
p
, sizeof(include_dir_config));
3728
3729    result : modules/filters/mod_include.c line=3727 column=25
r
esult-> : enter=1, leave=1
-
>default_error_msg : modules/filters/mod_include.c line=114 column=17
d
efault_error_msg = : enter=1, leave=1
=
 DEFAULT_ERROR_MSG;
3730    result : modules/filters/mod_include.c line=3727 column=25
r
esult-> : enter=1, leave=1
-
>default_time_fmt : modules/filters/mod_include.c line=115 column=17
d
efault_time_fmt  = : enter=1, leave=1
=
 DEFAULT_TIME_FORMAT;
3731    result : modules/filters/mod_include.c line=3727 column=25
r
esult-> : enter=1, leave=1
-
>undefined_echo : modules/filters/mod_include.c line=116 column=17
u
ndefined_echo    = : enter=1, leave=1
=
 DEFAULT_UNDEFINED_ECHO;
3732    result : modules/filters/mod_include.c line=3727 column=25
r
esult-> : enter=1, leave=1
-
>xbithack : modules/filters/mod_include.c line=117 column=17
x
bithack          = : enter=1, leave=1
=
 DEFAULT_XBITHACK;
3733    result : modules/filters/mod_include.c line=3727 column=25
r
esult-> : enter=1, leave=1
-
>accessenable : modules/filters/mod_include.c line=118 column=9
a
ccessenable      = : enter=1, leave=1
=
 DEFAULT_ACCESSENABLE;
3734    result : modules/filters/mod_include.c line=3727 column=25
r
esult-> : enter=1, leave=1
-
>lastmodified : modules/filters/mod_include.c line=119 column=9
l
astmodified      = : enter=1, leave=1
=
 DEFAULT_LASTMODIFIED;
3735    result : modules/filters/mod_include.c line=3727 column=25
r
esult-> : enter=1, leave=1
-
>etag : modules/filters/mod_include.c line=120 column=9
e
tag              = : enter=1, leave=1
=
 DEFAULT_ETAG;
3736
3737    return : pass=1
r
eturn result : modules/filters/mod_include.c line=3727 column=25
r
esult;
3738}
3739
3740static void *create_includes_server_config : call=1
c
reate_includes_server_config(apr_pool_t *p, server_rec *server)
3741{
3742    include_server_config *result;
3743
3744    result : modules/filters/mod_include.c line=3742 column=28
r
esult = : pass=1
=
 apr_palloc : enter=1, leave=1

apr_palloc : /usr/include/apr-1/apr_pools.h line=419 column=21
a
pr_palloc(p : modules/filters/mod_include.c line=3740 column=56
p
, sizeof(include_server_config));
3745    result : modules/filters/mod_include.c line=3742 column=28
r
esult-> : enter=1, leave=1
-
>default_end_tag : modules/filters/mod_include.c line=125 column=17
d
efault_end_tag    = : enter=1, leave=1
=
 DEFAULT_END_SEQUENCE;
3746    result : modules/filters/mod_include.c line=3742 column=28
r
esult-> : enter=1, leave=1
-
>default_start_tag : modules/filters/mod_include.c line=124 column=17
d
efault_start_tag  = : enter=1, leave=1
=
 DEFAULT_START_SEQUENCE;
3747
3748    return : pass=1
r
eturn result : modules/filters/mod_include.c line=3742 column=28
r
esult;
3749}
3750
3751static const char *set_xbithack : call=0
s
et_xbithack(cmd_parms *cmd, void *mconfig, const char *arg)
3752{
3753    include_dir_config *conf = mconfig : modules/filters/mod_include.c line=3751 column=55
m
config;
3754
3755    if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(arg : modules/filters/mod_include.c line=3751 column=76
a
rg, "off")) {
3756        conf : modules/filters/mod_include.c line=3753 column=25
c
onf-> : enter=0, leave=0
-
>xbithack : modules/filters/mod_include.c line=117 column=17
x
bithack = : enter=0, leave=0
=
 XBITHACK_OFF : modules/filters/mod_include.c line=108 column=5
X
BITHACK_OFF;
3757    }
3758    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(arg : modules/filters/mod_include.c line=3751 column=76
a
rg, "on")) {
3759        conf : modules/filters/mod_include.c line=3753 column=25
c
onf-> : enter=0, leave=0
-
>xbithack : modules/filters/mod_include.c line=117 column=17
x
bithack = : enter=0, leave=0
=
 XBITHACK_ON : modules/filters/mod_include.c line=109 column=5
X
BITHACK_ON;
3760    }
3761    else if : true=0, false=0
i
f (! : true=0, false=0
!
strcasecmp : enter=0, leave=0

strcasecmp : /usr/include/string.h line=536 column=12
s
trcasecmp(arg : modules/filters/mod_include.c line=3751 column=76
a
rg, "full")) {
3762        conf : modules/filters/mod_include.c line=3753 column=25
c
onf-> : enter=0, leave=0
-
>xbithack : modules/filters/mod_include.c line=117 column=17
x
bithack = : enter=0, leave=0
=
 XBITHACK_FULL : modules/filters/mod_include.c line=110 column=5
X
BITHACK_FULL;
3763    }
3764    else {
3765        return : pass=0
r
eturn "XBitHack must be set to Off, On, or Full";
3766    }
3767
3768    return : pass=0
r
eturn NULL;
3769}
3770
3771static const char *set_default_start_tag : call=0
s
et_default_start_tag(cmd_parms *cmd, void *mconfig,
3772                                         const char *tag)
3773{
3774    include_server_config *conf;
3775    const char *p = tag : modules/filters/mod_include.c line=3772 column=54
t
ag;
3776
3777    /* be consistent. (See below in set_default_end_tag) */
3778    while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=3775 column=17
p
) {
3779        if : true=0, false=0
i
f (apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=3775 column=17
p
)) {
3780            return : pass=0
r
eturn "SSIStartTag may not contain any whitespaces";
3781        }
3782        ++ : pass=0
+
+p : modules/filters/mod_include.c line=3775 column=17
p
;
3783    }
3784
3785    conf : modules/filters/mod_include.c line=3774 column=28
c
onf= : pass=0
=
 ap_get_module_config(cmd : modules/filters/mod_include.c line=3771 column=53
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 , &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module);
3786    conf : modules/filters/mod_include.c line=3774 column=28
c
onf-> : enter=0, leave=0
-
>default_start_tag : modules/filters/mod_include.c line=124 column=17
d
efault_start_tag = : enter=0, leave=0
=
 tag : modules/filters/mod_include.c line=3772 column=54
t
ag;
3787
3788    return : pass=0
r
eturn NULL;
3789}
3790
3791static const char *set_default_end_tag : call=0
s
et_default_end_tag(cmd_parms *cmd, void *mconfig,
3792                                       const char *tag)
3793{
3794    include_server_config *conf;
3795    const char *p = tag : modules/filters/mod_include.c line=3792 column=52
t
ag;
3796
3797    /* sanity check. The parser may fail otherwise */
3798    while : true=0, false=0
w
hile (* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=3795 column=17
p
) {
3799        if : true=0, false=0
i
f (apr_isspace(* dereference : enter=0, leave=0
*
p : modules/filters/mod_include.c line=3795 column=17
p
)) {
3800            return : pass=0
r
eturn "SSIEndTag may not contain any whitespaces";
3801        }
3802        ++ : pass=0
+
+p : modules/filters/mod_include.c line=3795 column=17
p
;
3803    }
3804
3805    conf : modules/filters/mod_include.c line=3794 column=28
c
onf= : pass=0
=
 ap_get_module_config(cmd : modules/filters/mod_include.c line=3791 column=51
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 , &include_module : modules/filters/mod_include.c line=446 column=31
i
nclude_module);
3806    conf : modules/filters/mod_include.c line=3794 column=28
c
onf-> : enter=0, leave=0
-
>default_end_tag : modules/filters/mod_include.c line=125 column=17
d
efault_end_tag = : enter=0, leave=0
=
 tag : modules/filters/mod_include.c line=3792 column=52
t
ag;
3807
3808    return : pass=0
r
eturn NULL;
3809}
3810
3811static const char *set_undefined_echo : call=0
s
et_undefined_echo(cmd_parms *cmd, void *mconfig,
3812                                      const char *msg)
3813{
3814    include_dir_config *conf = mconfig : modules/filters/mod_include.c line=3811 column=61
m
config;
3815    conf : modules/filters/mod_include.c line=3814 column=25
c
onf-> : enter=0, leave=0
-
>undefined_echo : modules/filters/mod_include.c line=116 column=17
u
ndefined_echo = : enter=0, leave=0
=
 msg : modules/filters/mod_include.c line=3812 column=51
m
sg;
3816
3817    return : pass=0
r
eturn NULL;
3818}
3819
3820static const char *set_default_error_msg : call=0
s
et_default_error_msg(cmd_parms *cmd, void *mconfig,
3821                                         const char *msg)
3822{
3823    include_dir_config *conf = mconfig : modules/filters/mod_include.c line=3820 column=64
m
config;
3824    conf : modules/filters/mod_include.c line=3823 column=25
c
onf-> : enter=0, leave=0
-
>default_error_msg : modules/filters/mod_include.c line=114 column=17
d
efault_error_msg = : enter=0, leave=0
=
 msg : modules/filters/mod_include.c line=3821 column=54
m
sg;
3825
3826    return : pass=0
r
eturn NULL;
3827}
3828
3829static const char *set_default_time_fmt : call=0
s
et_default_time_fmt(cmd_parms *cmd, void *mconfig,
3830                                        const char *fmt)
3831{
3832    include_dir_config *conf = mconfig : modules/filters/mod_include.c line=3829 column=63
m
config;
3833    conf : modules/filters/mod_include.c line=3832 column=25
c
onf-> : enter=0, leave=0
-
>default_time_fmt : modules/filters/mod_include.c line=115 column=17
d
efault_time_fmt = : enter=0, leave=0
=
 fmt : modules/filters/mod_include.c line=3830 column=53
f
mt;
3834
3835    return : pass=0
r
eturn NULL;
3836}
3837
3838
3839/*
3840 * +-------------------------------------------------------+
3841 * |                                                       |
3842 * |        Module Initialization and Configuration
3843 * |                                                       |
3844 * +-------------------------------------------------------+
3845 */
3846
3847static int include_post_config : call=0
i
nclude_post_config(apr_pool_t *p, apr_pool_t *plog,
3848                                apr_pool_t *ptemp, server_rec *s)
3849{
3850    include_handlers : modules/filters/mod_include.c line=449 column=20
i
nclude_handlers = : 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/filters/mod_include.c line=3847 column=44
p
);
3851
3852    ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register = : pass=0
=
 APR_RETRIEVE_OPTIONAL_FN(ap_register_include_handler);
3853
3854    if : true=0, false=0
i
f(ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register) {
3855        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("if", handle_if : modules/filters/mod_include.c line=2095 column=21
h
andle_if);
3856        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("set", handle_set : modules/filters/mod_include.c line=2308 column=21
h
andle_set);
3857        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("else", handle_else : modules/filters/mod_include.c line=2237 column=21
h
andle_else);
3858        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("elif", handle_elif : modules/filters/mod_include.c line=2165 column=21
h
andle_elif);
3859        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("echo", handle_echo : modules/filters/mod_include.c line=1761 column=21
h
andle_echo);
3860        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("endif", handle_endif : modules/filters/mod_include.c line=2276 column=21
h
andle_endif);
3861        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("fsize", handle_fsize : modules/filters/mod_include.c line=1950 column=21
h
andle_fsize);
3862        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("config", handle_config : modules/filters/mod_include.c line=1862 column=21
h
andle_config);
3863        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("include", handle_include : modules/filters/mod_include.c line=1653 column=21
h
andle_include);
3864        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("flastmod", handle_flastmod : modules/filters/mod_include.c line=2037 column=21
h
andle_flastmod);
3865        ssi_pfn_register : enter=0, leave=0

ssi_pfn_register : modules/filters/mod_include.c line=452 column=59
s
si_pfn_register("printenv", handle_printenv : modules/filters/mod_include.c line=2385 column=21
h
andle_printenv);
3866    }
3867
3868    return : pass=0
r
eturn OK;
3869}
3870
3871static const command_rec includes_cmds[] =
3872{
3873    AP_INIT_TAKE1("XBitHack", set_xbithack : modules/filters/mod_include.c line=3751 column=20
s
et_xbithack, NULL, OR_OPTIONS,
3874                  "Off, On, or Full"),
3875    AP_INIT_TAKE1("SSIErrorMsg", set_default_error_msg : modules/filters/mod_include.c line=3820 column=20
s
et_default_error_msg, NULL, OR_ALL,
3876                  "a string"),
3877    AP_INIT_TAKE1("SSITimeFormat", set_default_time_fmt : modules/filters/mod_include.c line=3829 column=20
s
et_default_time_fmt, NULL, OR_ALL,
3878                  "a strftime(3) formatted string"),
3879    AP_INIT_TAKE1("SSIStartTag", set_default_start_tag : modules/filters/mod_include.c line=3771 column=20
s
et_default_start_tag, NULL, RSRC_CONF,
3880                  "SSI Start String Tag"),
3881    AP_INIT_TAKE1("SSIEndTag", set_default_end_tag : modules/filters/mod_include.c line=3791 column=20
s
et_default_end_tag, NULL, RSRC_CONF,
3882                  "SSI End String Tag"),
3883    AP_INIT_TAKE1("SSIUndefinedEcho", set_undefined_echo : modules/filters/mod_include.c line=3811 column=20
s
et_undefined_echo, NULL, OR_ALL,
3884                  "String to be displayed if an echoed variable is undefined"),
3885    AP_INIT_FLAG("SSIAccessEnable", ap_set_flag_slot : include/http_config.h line=523 column=33
a
p_set_flag_slot,
3886                  (void *)APR_OFFSETOF(include_dir_config, accessenable : modules/filters/mod_include.c line=118 column=9
a
ccessenable),
3887                  OR_LIMIT, "Whether testing access is enabled. Limited to 'on' or 'off'"),
3888    AP_INIT_FLAG("SSILastModified", ap_set_flag_slot : include/http_config.h line=523 column=33
a
p_set_flag_slot,
3889                  (void *)APR_OFFSETOF(include_dir_config, lastmodified : modules/filters/mod_include.c line=119 column=9
l
astmodified),
3890                  OR_LIMIT, "Whether to set the last modified header or respect "
3891                  "an existing header. Limited to 'on' or 'off'"),
3892    AP_INIT_FLAG("SSIEtag", ap_set_flag_slot : include/http_config.h line=523 column=33
a
p_set_flag_slot,
3893                  (void *)APR_OFFSETOF(include_dir_config, etag : modules/filters/mod_include.c line=120 column=9
e
tag),
3894                  OR_LIMIT, "Whether to allow the generation of ETags within the server. "
3895                  "Existing ETags will be preserved. Limited to 'on' or 'off'"),
3896    {NULL}
3897};
3898
3899static void ap_register_include_handler : call=0
a
p_register_include_handler(char *tag, include_handler_fn_t *func)
3900{
3901    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(include_handlers : modules/filters/mod_include.c line=449 column=20
i
nclude_handlers, tag : modules/filters/mod_include.c line=3899 column=47
t
ag, strlen : enter=0, leave=0

strlen : /usr/include/string.h line=399 column=15
s
trlen(tag : modules/filters/mod_include.c line=3899 column=47
t
ag), (const void *)func : modules/filters/mod_include.c line=3899 column=74
f
unc);
3902}
3903
3904static void register_hooks : call=1
r
egister_hooks(apr_pool_t *p)
3905{
3906    APR_REGISTER_OPTIONAL_FN(ap_ssi_get_tag_and_value : modules/filters/mod_include.c line=1551 column=13
a
p_ssi_get_tag_and_value);
3907    APR_REGISTER_OPTIONAL_FN(ap_ssi_parse_string : modules/filters/mod_include.c line=698 column=14
a
p_ssi_parse_string);
3908    APR_REGISTER_OPTIONAL_FN(ap_register_include_handler : modules/filters/mod_include.c line=3899 column=13
a
p_register_include_handler);
3909    ap_hook_post_config : enter=1, leave=1

ap_hook_post_config : modules/filters/ line=210 column=1
a
p_hook_post_config(include_post_config : modules/filters/mod_include.c line=3847 column=12
i
nclude_post_config, NULL, NULL, APR_HOOK_REALLY_FIRST);
3910    ap_hook_fixups : enter=1, leave=1

ap_hook_fixups : modules/filters/ line=209 column=1
a
p_hook_fixups(include_fixup : modules/filters/mod_include.c line=3674 column=12
i
nclude_fixup, NULL, NULL, APR_HOOK_LAST);
3911    ap_register_output_filter : enter=1, leave=1

ap_register_output_filter : include/util_filter.h line=350 column=31
a
p_register_output_filter("INCLUDES", includes_filter : modules/filters/mod_include.c line=3544 column=21
i
ncludes_filter, includes_setup : modules/filters/mod_include.c line=3517 column=12
i
ncludes_setup,
3912                              AP_FTYPE_RESOURCE : include/util_filter.h line=163 column=5
A
P_FTYPE_RESOURCE);
3913}
3914
3915module AP_MODULE_DECLARE_DATA include_module =
3916{
3917    STANDARD20_MODULE_STUFF,
3918    create_includes_dir_config : modules/filters/mod_include.c line=3725 column=14
c
reate_includes_dir_config,   /* dir config creater */
3919    NULL,                         /* dir merger --- default is to override */
3920    create_includes_server_config : modules/filters/mod_include.c line=3740 column=14
c
reate_includes_server_config,/* server config */
3921    NULL,                         /* merge server config */
3922    includes_cmds : modules/filters/mod_include.c line=3871 column=26
i
ncludes_cmds,                /* command apr_table_t */
3923    register_hooks : modules/filters/mod_include.c line=3904 column=13
r
egister_hooks                /* register hooks */
3924};
3925[EOF]


Generated by expcov