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/ices2-2.0.3/src/im_alsa.c
Examining data/ices2-2.0.3/src/event.h
Examining data/ices2-2.0.3/src/im_sun.h
Examining data/ices2-2.0.3/src/resample.h
Examining data/ices2-2.0.3/src/im_stdinpcm.h
Examining data/ices2-2.0.3/src/inputmodule.h
Examining data/ices2-2.0.3/src/audio.h
Examining data/ices2-2.0.3/src/input.h
Examining data/ices2-2.0.3/src/stream_shared.c
Examining data/ices2-2.0.3/src/im_oss.c
Examining data/ices2-2.0.3/src/encode.h
Examining data/ices2-2.0.3/src/cfgparse.c
Examining data/ices2-2.0.3/src/metadata.c
Examining data/ices2-2.0.3/src/metadata.h
Examining data/ices2-2.0.3/src/im_roar.c
Examining data/ices2-2.0.3/src/resample.c
Examining data/ices2-2.0.3/src/audio.c
Examining data/ices2-2.0.3/src/im_stdinpcm.c
Examining data/ices2-2.0.3/src/ices.c
Examining data/ices2-2.0.3/src/im_alsa.h
Examining data/ices2-2.0.3/src/im_playlist.h
Examining data/ices2-2.0.3/src/common/avl/avl.c
Examining data/ices2-2.0.3/src/common/avl/avl.h
Examining data/ices2-2.0.3/src/common/avl/test.c
Examining data/ices2-2.0.3/src/common/timing/timing.h
Examining data/ices2-2.0.3/src/common/timing/timing.c
Examining data/ices2-2.0.3/src/common/thread/thread.h
Examining data/ices2-2.0.3/src/common/thread/thread.c
Examining data/ices2-2.0.3/src/common/log/log.c
Examining data/ices2-2.0.3/src/common/log/log.h
Examining data/ices2-2.0.3/src/common/log/test.c
Examining data/ices2-2.0.3/src/signals.h
Examining data/ices2-2.0.3/src/input.c
Examining data/ices2-2.0.3/src/stream.h
Examining data/ices2-2.0.3/src/playlist_script.c
Examining data/ices2-2.0.3/src/im_oss.h
Examining data/ices2-2.0.3/src/stream_shared.h
Examining data/ices2-2.0.3/src/im_roar.h
Examining data/ices2-2.0.3/src/playlist_basic.h
Examining data/ices2-2.0.3/src/encode.c
Examining data/ices2-2.0.3/src/playlist_basic.c
Examining data/ices2-2.0.3/src/stream.c
Examining data/ices2-2.0.3/src/signals.c
Examining data/ices2-2.0.3/src/logging.h
Examining data/ices2-2.0.3/src/reencode.c
Examining data/ices2-2.0.3/src/im_sun.c
Examining data/ices2-2.0.3/src/cfgparse.h
Examining data/ices2-2.0.3/src/reencode.h
Examining data/ices2-2.0.3/src/im_playlist.c

FINAL RESULTS:

data/ices2-2.0.3/src/common/avl/test.c:5: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/ices2-2.0.3/src/common/avl/test.c:5: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/ices2-2.0.3/src/common/log/log.c:61: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/ices2-2.0.3/src/common/log/log.c:61: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/ices2-2.0.3/src/common/log/log.c:62:9:  [4] (format) vsnprintf:
  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 vsnprintf _vsnprintf
data/ices2-2.0.3/src/ices.c:49:9:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        fprintf(stderr, PACKAGE_STRING "\n"
data/ices2-2.0.3/src/playlist_script.c:50:12:  [4] (shell) popen:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
    pipe = popen(prog, "r");
data/ices2-2.0.3/src/playlist_script.c:100:12:  [4] (shell) popen:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
    pipe = popen(pl->on_ended, "w");
data/ices2-2.0.3/src/cfgparse.c:462:5:  [3] (random) srandom:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
    srandom(time(NULL));
data/ices2-2.0.3/src/common/log/log.c:183:5:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
    InitializeCriticalSection(&_logger_mutex);
data/ices2-2.0.3/src/common/log/log.c:668:5:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
    EnterCriticalSection(&_logger_mutex);
data/ices2-2.0.3/src/encode.c:42:18:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
        serial = random();
data/ices2-2.0.3/src/playlist_basic.c:48:17:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
            d = random();
data/ices2-2.0.3/src/playlist_basic.c:147:14:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
    if(data->random)
data/ices2-2.0.3/src/playlist_basic.c:212:17:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
        if (pl->random)
data/ices2-2.0.3/src/playlist_basic.h:32:9:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
    int random;
data/ices2-2.0.3/src/cfgparse.c:82:15:  [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).
        (x) = atoi(tmp);\
data/ices2-2.0.3/src/common/avl/avl.c:1072:8:  [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.
static char balance_chars[3] = {'\\', '-', '/'};
data/ices2-2.0.3/src/common/avl/avl.c:1119:3:  [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 buffer[AVL_KEY_PRINTER_BUFLEN];
data/ices2-2.0.3/src/common/avl/test.c:21:21:  [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).
        max_nodes = atoi(argv[1]);
data/ices2-2.0.3/src/common/log/log.c:122: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 new_name [4096];
data/ices2-2.0.3/src/common/log/log.c:128:21:  [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 timestamp [128];
data/ices2-2.0.3/src/common/log/log.c:143:38:  [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).
            loglist [id] . logfile = fopen (loglist [id] . filename, "a");
data/ices2-2.0.3/src/common/log/log.c:214:12:  [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).
    file = fopen(filename, "a");
data/ices2-2.0.3/src/common/log/log.c:449: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[80];
data/ices2-2.0.3/src/common/log/log.c:494:33:  [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).
                    block_len = atoi(format);
data/ices2-2.0.3/src/common/log/log.c:577: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 pre[256];
data/ices2-2.0.3/src/common/log/log.c:578: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 line[LOG_MAXLINELEN];
data/ices2-2.0.3/src/common/log/log.c:608: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 line[LOG_MAXLINELEN];
data/ices2-2.0.3/src/common/thread/thread.c:579: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 name[40];
data/ices2-2.0.3/src/encode.c:163: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(buf[i], pcm[i], samples*sizeof(float));
data/ices2-2.0.3/src/ices.c:44: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 logpath[FILENAME_MAX];
data/ices2-2.0.3/src/ices.c:129:19:  [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).
        FILE *f = fopen (ices_config->pidfile, "w");
data/ices2-2.0.3/src/im_alsa.c:191:23:  [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).
            s->rate = atoi(current->value);
data/ices2-2.0.3/src/im_alsa.c:193:27:  [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).
            s->channels = atoi(current->value);
data/ices2-2.0.3/src/im_alsa.c:197:28:  [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).
            use_metadata = atoi(current->value);
data/ices2-2.0.3/src/im_alsa.c:201:30:  [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).
            s->buffer_time = atoi (current->value) * 1000;
data/ices2-2.0.3/src/im_alsa.c:203:26:  [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).
            s->periods = atoi (current->value);
data/ices2-2.0.3/src/im_oss.c:189:23:  [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).
            s->rate = atoi(current->value);
data/ices2-2.0.3/src/im_oss.c:191:27:  [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).
            s->channels = atoi(current->value);
data/ices2-2.0.3/src/im_oss.c:195:28:  [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).
            use_metadata = atoi(current->value);
data/ices2-2.0.3/src/im_oss.c:205:17:  [2] (misc) open:
  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).
    if((s->fd = open(device, O_RDONLY, 0)) == -1)
data/ices2-2.0.3/src/im_playlist.c:145:32:  [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).
            pl->current_file = fopen(pl->filename, "rb");
data/ices2-2.0.3/src/im_playlist.c:192: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(rb->buf, og.header, og.header_len);
data/ices2-2.0.3/src/im_playlist.c:193: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(rb->buf+og.header_len, og.body, og.body_len);
data/ices2-2.0.3/src/im_roar.c:272:32:  [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).
                use_metadata = atoi(current->value);
data/ices2-2.0.3/src/im_stdinpcm.c:169:23:  [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).
            s->rate = atoi(current->value);
data/ices2-2.0.3/src/im_stdinpcm.c:171:27:  [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).
            s->channels = atoi(current->value);
data/ices2-2.0.3/src/im_stdinpcm.c:173:28:  [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).
            use_metadata = atoi(current->value);
data/ices2-2.0.3/src/im_sun.c:187:63:  [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).
            sample_rate = s->device_info.record.sample_rate = atoi(current->value);
data/ices2-2.0.3/src/im_sun.c:189:57:  [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).
            channels = s->device_info.record.channels = atoi(current->value);
data/ices2-2.0.3/src/im_sun.c:193:28:  [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).
            use_metadata = atoi(current->value);
data/ices2-2.0.3/src/im_sun.c:202:17:  [2] (misc) open:
  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).
    if((s->fd = open(device, O_RDONLY, 0)) < 0) {
data/ices2-2.0.3/src/input.c:81:23:  [2] (misc) open:
  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).
    input_module_t *(*open)(module_param_t *params);
data/ices2-2.0.3/src/input.c:134:48:  [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.
static uint32_t __read_int32_le(const unsigned char in[4])
data/ices2-2.0.3/src/input.c:147:48:  [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.
static uint32_t __read_int20_be(const unsigned char in[3])
data/ices2-2.0.3/src/input.c:387:67:  [2] (misc) open:
  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).
    while(ices_config->playlist_module && modules[current_module].open)
data/ices2-2.0.3/src/input.c:392:45:  [2] (misc) open:
  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).
            inmod = modules[current_module].open(ices_config->module_params);
data/ices2-2.0.3/src/metadata.c:43: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[1024];
data/ices2-2.0.3/src/metadata.c:100:17:  [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(md[comments], buf, strlen(buf)+1);
data/ices2-2.0.3/src/metadata.c:119: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[1024];
data/ices2-2.0.3/src/metadata.c:141: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).
        file = fopen(ices_config->metadata_filename, "r");
data/ices2-2.0.3/src/metadata.c:160:17:  [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(md[comments], buf, strlen(buf)+1);
data/ices2-2.0.3/src/playlist_basic.c:73: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[1024];
data/ices2-2.0.3/src/playlist_basic.c:78:12:  [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).
    file = fopen(data->file, "rb");
data/ices2-2.0.3/src/playlist_basic.c:253:28:  [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).
            data->random = atoi(params->value);
data/ices2-2.0.3/src/playlist_basic.c:255:26:  [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).
            data->once = atoi(params->value);
data/ices2-2.0.3/src/playlist_basic.c:257:32:  [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).
            pl->allow_repeat = atoi(params->value);
data/ices2-2.0.3/src/playlist_basic.c:259:40:  [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).
            data->restartafterreread = atoi(params->value);
data/ices2-2.0.3/src/playlist_script.c:136:32:  [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).
            pl->allow_repeat = atoi(params->value);
data/ices2-2.0.3/src/reencode.c:103:17:  [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(retbuf+old, encog.header, encog.header_len);
data/ices2-2.0.3/src/reencode.c:104:17:  [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(retbuf+old+encog.header_len, encog.body, 
data/ices2-2.0.3/src/reencode.c:228:21:  [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(retbuf+old, encog.header, encog.header_len);
data/ices2-2.0.3/src/reencode.c:229:21:  [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(retbuf+old+encog.header_len, encog.body, 
data/ices2-2.0.3/src/stream.c:62: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 audio_info[11];
data/ices2-2.0.3/src/stream.c:267:28:  [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).
        stream->savefile = fopen(stream->savefilename, "wb");
data/ices2-2.0.3/src/common/log/log.c:390: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).
    entry->len = strlen (pre) + strlen (line) + 2;
data/ices2-2.0.3/src/common/log/log.c:390: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).
    entry->len = strlen (pre) + strlen (line) + 2;
data/ices2-2.0.3/src/common/log/log.c:540: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).
                        block_len = strlen(arg);
data/ices2-2.0.3/src/im_oss.c:131:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    result = read(s->fd, rb->buf, BUFSIZE*2*s->channels);
data/ices2-2.0.3/src/im_sun.c:128:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    result = read(s->fd, rb->buf, BUFSIZE*2*s->device_info.record.channels);
data/ices2-2.0.3/src/metadata.c:95:24:  [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(buf[strlen(buf)-1] == '\n')
data/ices2-2.0.3/src/metadata.c:96: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).
                    buf[strlen(buf)-1] = 0;
data/ices2-2.0.3/src/metadata.c:98: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).
                md[comments] = malloc(strlen(buf)+1);
data/ices2-2.0.3/src/metadata.c:100:43:  [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).
                memcpy(md[comments], buf, strlen(buf)+1);
data/ices2-2.0.3/src/metadata.c:155:24:  [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(buf[strlen(buf)-1] == '\n')
data/ices2-2.0.3/src/metadata.c:156: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).
                    buf[strlen(buf)-1] = 0;
data/ices2-2.0.3/src/metadata.c:158: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).
                md[comments] = malloc(strlen(buf)+1);
data/ices2-2.0.3/src/metadata.c:160:43:  [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).
                memcpy(md[comments], buf, strlen(buf)+1);
data/ices2-2.0.3/src/playlist_basic.c:108:13:  [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).
        ret[strlen(ret)-1] = 0;
data/ices2-2.0.3/src/playlist_basic.c:111:12:  [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(ret) > 0 && ret[strlen(ret)-1] == '\r')
data/ices2-2.0.3/src/playlist_basic.c:111:35:  [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(ret) > 0 && ret[strlen(ret)-1] == '\r')
data/ices2-2.0.3/src/playlist_basic.c:112:17:  [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).
            ret[strlen(ret)-1] = 0;
data/ices2-2.0.3/src/playlist_script.c:72:12:  [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(buf[strlen(buf)-1] == '\n')
data/ices2-2.0.3/src/playlist_script.c:73:13:  [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).
        buf[strlen(buf)-1] = 0;
data/ices2-2.0.3/src/playlist_script.c:78:8:  [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(buf) > 0 && buf[strlen(buf)-1] == '\r')
data/ices2-2.0.3/src/playlist_script.c:78: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).
    if(strlen(buf) > 0 && buf[strlen(buf)-1] == '\r')
data/ices2-2.0.3/src/playlist_script.c:79:13:  [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).
        buf[strlen(buf)-1] = 0;

ANALYSIS SUMMARY:

Hits = 98
Lines analyzed = 10021 in approximately 0.37 seconds (27123 lines/second)
Physical Source Lines of Code (SLOC) = 7361
Hits@level = [0]  43 [1]  22 [2]  60 [3]   8 [4]   8 [5]   0
Hits@level+ = [0+] 141 [1+]  98 [2+]  76 [3+]  16 [4+]   8 [5+]   0
Hits/KSLOC@level+ = [0+] 19.155 [1+] 13.3134 [2+] 10.3247 [3+] 2.17362 [4+] 1.08681 [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.