Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler.
Number of rules (primarily dangerous function names) in C/C++ ruleset: 223
Examining data/libapache2-mod-rivet-3.2.0/src/librivet/rivetCrypt.c
Examining data/libapache2-mod-rivet-3.2.0/src/librivet/rivetPkgInit.c
Examining data/libapache2-mod-rivet-3.2.0/src/librivet/rivetList.c
Examining data/libapache2-mod-rivet-3.2.0/src/librivet/rivetWWW.c
Examining data/libapache2-mod-rivet-3.2.0/src/TclWebcgi.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivet_lazy_mpm.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivet_types.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/worker_prefork_common.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivet_prefork_mpm.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/worker_prefork_common.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetChannel.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetCore.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetChannel.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_generator.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetCore.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/apache_config.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetInspect.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_common.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivet_worker_mpm.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_cache.h
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_generator.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/apache_config.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_common.c
Examining data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_cache.c
Examining data/libapache2-mod-rivet-3.2.0/src/parser/rivetParser.h
Examining data/libapache2-mod-rivet-3.2.0/src/parser/rivetParser.c
Examining data/libapache2-mod-rivet-3.2.0/src/parser/parserPkgInit.c
Examining data/libapache2-mod-rivet-3.2.0/src/request/apache_request.h
Examining data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c
Examining data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.h
Examining data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.c
Examining data/libapache2-mod-rivet-3.2.0/src/testing.c
Examining data/libapache2-mod-rivet-3.2.0/src/TclWeb.h
Examining data/libapache2-mod-rivet-3.2.0/src/TclWeb.c
Examining data/libapache2-mod-rivet-3.2.0/src/rivet.h

FINAL RESULTS:

data/libapache2-mod-rivet-3.2.0/src/librivet/rivetCrypt.c:85:5:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
    strcpy ( resultBuffer, data );
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetCrypt.c:113:5:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
    strcpy ( resultBuffer, data );
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetCrypt.c:128:8:  [4] (crypto) crypt:
  The crypt functions use a poor one-way hashing algorithm; since they only
  accept passwords of 8 characters or fewer and only a two-byte salt, they
  are excessively vulnerable to dictionary attacks given today's faster
  computing equipment (CWE-327). Use a different algorithm, such as SHA-256,
  with a larger, non-repeating salt.
#ifdef crypt
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetCrypt.c:140:20:  [4] (crypto) crypt:
  The crypt functions use a poor one-way hashing algorithm; since they only
  accept passwords of 8 characters or fewer and only a two-byte salt, they
  are excessively vulnerable to dictionary attacks given today's faster
  computing equipment (CWE-327). Use a different algorithm, such as SHA-256,
  with a larger, non-repeating salt.
    resultBuffer = crypt((const char *)key, (const char *)salt);
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetWWW.c:38:9:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define snprintf _snprintf
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetWWW.c:38:18:  [4] (format) _snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
#define snprintf _snprintf
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_cache.c:249:13:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
            strcpy(rivet_interp->objCacheList[rivet_interp->cache_free], hashKey);
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetCore.c:2031:5:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
    snprintf(buff,SMALL_BUFFER_SIZE,output_format,threadid);
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetWWW.c:118:17:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
                char buf[3];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet.c:386:13:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
            char errorbuf[ERRORBUF_SZ];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet.c:404:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char errorbuf[ERRORBUF_SZ];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_common.c:784:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char        chdir_buf[HUGE_STRING_LEN];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_common.c:794:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(chdir_buf, file, x - file);
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetCore.c:278:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char apr_error_message[RIVET_MSG_BUFFER_SIZE];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetCore.c:1986:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char                    buff[SMALL_BUFFER_SIZE];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivet_worker_mpm.c:380:13:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
            char    errorbuf[RIVET_MSG_BUFFER_SIZE];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivet_worker_mpm.c:477:25:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
                        char errorbuf[RIVET_MSG_BUFFER_SIZE];
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivet_worker_mpm.c:600:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char errorbuf[RIVET_MSG_BUFFER_SIZE];
data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.c:275:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(buf, self->buf_begin, len);
data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.c:297:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char buf[FILLUNIT], *out = "";
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:50:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char buff[HUGE_STRING_LEN];
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:73:13:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
            memcpy((char*)*rbuf + rpos, buff, rsize);
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:254:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char xstr[5];
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:528:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char               error[1024];
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:566:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char 			buff[FILLUNIT];
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:683:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char buf[256];
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:705:14:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
    offset = atoi(buf);
data/libapache2-mod-rivet-3.2.0/src/testing.c:33:16:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    testfile = fopen(Tcl_GetString(objv[1]), "r");
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetCrypt.c:47:23:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    offset = offset % strlen(key);
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetList.c:135:37:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
            if( (mode != EXACT) && (strlen(pattern) != (size_t)patternLen) ) {
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetList.c:146:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                if( strlen(value) != (size_t)valueLen ) {
data/libapache2-mod-rivet-3.2.0/src/librivet/rivetList.c:153:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                if( strlen(value) != (size_t)valueLen ) {
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:97:31:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    size_t content_type_len = strlen(r->content_type);
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:112:66:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    if (((private->ctype==RIVET_TEMPLATE) && (content_type_len > strlen(RIVET_TEMPLATE_CTYPE))) || \
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:113:66:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
         ((private->ctype==RIVET_TCLFILE) && (content_type_len > strlen(RIVET_TCLFILE_CTYPE)))) {
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:293:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(varname) < strlen(parmkey) ?
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:293:39:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(varname) < strlen(parmkey) ?
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:294:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(parmkey) : strlen(varname)))
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:294:39:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(parmkey) : strlen(varname)))
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:338:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                 strlen(varname) < strlen(parms[i].key) ?
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:338:36:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                 strlen(varname) < strlen(parms[i].key) ?
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:339:18:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                 strlen(parms[i].key) : strlen(varname)))
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:339:41:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                 strlen(parms[i].key) : strlen(varname)))
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:419:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(varname) < strlen(parms[i].key) ?
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:419:39:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(varname) < strlen(parms[i].key) ?
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:420:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(parms[i].key) : strlen(varname)))
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:420:44:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                    strlen(parms[i].key) : strlen(varname)))
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/TclWebapache.c:641:48:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    Tcl_ExternalToUtfDString(NULL, in, (signed)strlen(in), &dstr);
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_cache.c:248:58:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                (char*) apr_pcalloc (rivet_interp->pool,(strlen(hashKey)+1)*sizeof(char));
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_generator.c:152:89:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                (running_scripts *) apr_hash_get (interp_obj->per_dir_scripts,rdc->path,strlen(rdc->path));
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/mod_rivet_generator.c:168:69:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                apr_hash_set (interp_obj->per_dir_scripts,rdc->path,strlen(rdc->path),scripts);
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetCore.c:152:36:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
            size_t script_name_l = strlen(script_name);
data/libapache2-mod-rivet-3.2.0/src/mod_rivet_ng/rivetCore.c:2033:51:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    Tcl_SetObjResult(interp,Tcl_NewStringObj(buff,strlen(buff)));
data/libapache2-mod-rivet-3.2.0/src/parser/rivetParser.c:242:29:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    int endseqlen 	= 	(int) strlen(END_TAG);
data/libapache2-mod-rivet-3.2.0/src/parser/rivetParser.c:243:30:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    int startseqlen = 	(int) strlen(START_TAG);
data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.c:42:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    size_t needlen = strlen(needle);
data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.c:82:63:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
        bytes_to_read = (int)(self->r->remaining - (apr_off_t)strlen(self->boundary));
data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.c:191:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    size_t minsize = strlen(boundary)+6;
data/libapache2-mod-rivet-3.2.0/src/request/apache_multipart_buffer.c:221:39:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
    while( (line = get_line(self)) && strlen(line) > 0 ) {
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:549:16:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
        blen = strlen(boundary);
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:550:33:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
        if (blen == 0 || blen < strlen("boundary"))
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:552:28:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
        boundary += blen - strlen("boundary");
data/libapache2-mod-rivet-3.2.0/src/request/apache_request.c:632:25:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                        strlen(mbuff->boundary)) ) {
data/libapache2-mod-rivet-3.2.0/src/rivet.h:39:59:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
#define STRNEQU(s1,s2) (s1[0] == s2[0] && strncmp(s1, s2, strlen(s2)) == 0)

ANALYSIS SUMMARY:

Hits = 64
Lines analyzed = 12703 in approximately 0.74 seconds (17192 lines/second)
Physical Source Lines of Code (SLOC) = 6965
Hits@level = [0]   4 [1]  36 [2]  20 [3]   0 [4]   8 [5]   0
Hits@level+ = [0+]  68 [1+]  64 [2+]  28 [3+]   8 [4+]   8 [5+]   0
Hits/KSLOC@level+ = [0+] 9.7631 [1+] 9.1888 [2+] 4.0201 [3+] 1.1486 [4+] 1.1486 [5+]   0
Dot directories skipped = 1 (--followdotdir overrides)
Minimum risk level = 1
Not every hit is necessarily a security vulnerability.
There may be other security vulnerabilities; review your code!
See 'Secure Programming HOWTO'
(https://dwheeler.com/secure-programs) for more information.