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/ser-player-1.7.3/src/pipp_buffer.h
Examining data/ser-player-1.7.3/src/histogram_dialog.h
Examining data/ser-player-1.7.3/src/utf8_validator.cpp
Examining data/ser-player-1.7.3/src/tiff_write.cpp
Examining data/ser-player-1.7.3/src/png_write.h
Examining data/ser-player-1.7.3/src/icon_groupbox.cpp
Examining data/ser-player-1.7.3/src/main.cpp
Examining data/ser-player-1.7.3/src/neuquant.c
Examining data/ser-player-1.7.3/src/pipp_ser_write.cpp
Examining data/ser-player-1.7.3/src/pipp_timestamp.cpp
Examining data/ser-player-1.7.3/src/pipp_utf8_bsd.cpp
Examining data/ser-player-1.7.3/src/pipp_utf8.h
Examining data/ser-player-1.7.3/src/header_details_dialog.cpp
Examining data/ser-player-1.7.3/src/histogram_thread.cpp
Examining data/ser-player-1.7.3/src/application.cpp
Examining data/ser-player-1.7.3/src/application.h
Examining data/ser-player-1.7.3/src/pipp_avi_write.cpp
Examining data/ser-player-1.7.3/src/pipp_avi_write_dib.cpp
Examining data/ser-player-1.7.3/src/pipp_avi_write_dib.h
Examining data/ser-player-1.7.3/src/histogram_thread.h
Examining data/ser-player-1.7.3/src/lzw_compressor.h
Examining data/ser-player-1.7.3/src/save_frames_progress_dialog.cpp
Examining data/ser-player-1.7.3/src/save_frames_dialog.h
Examining data/ser-player-1.7.3/src/playback_controls_dialog.cpp
Examining data/ser-player-1.7.3/src/image.cpp
Examining data/ser-player-1.7.3/src/pipp_ser_write.h
Examining data/ser-player-1.7.3/src/pipp_ser.cpp
Examining data/ser-player-1.7.3/src/image.h
Examining data/ser-player-1.7.3/src/playback_controls_dialog.h
Examining data/ser-player-1.7.3/src/tiff_write.h
Examining data/ser-player-1.7.3/src/image_widget.cpp
Examining data/ser-player-1.7.3/src/playback_controls_widget.h
Examining data/ser-player-1.7.3/src/pipp_avi_write.h
Examining data/ser-player-1.7.3/src/frame_slider.h
Examining data/ser-player-1.7.3/src/image_widget.h
Examining data/ser-player-1.7.3/src/processing_options_dialog.cpp
Examining data/ser-player-1.7.3/src/pipp_utf8.cpp
Examining data/ser-player-1.7.3/src/pipp_utf8_linux.cpp
Examining data/ser-player-1.7.3/src/pipp_ser.h
Examining data/ser-player-1.7.3/src/markers_dialog.h
Examining data/ser-player-1.7.3/src/persistent_data.h
Examining data/ser-player-1.7.3/src/histogram_dialog.cpp
Examining data/ser-player-1.7.3/src/pipp_utf8_osx.cpp
Examining data/ser-player-1.7.3/src/ser_player.cpp
Examining data/ser-player-1.7.3/src/icon_groupbox.h
Examining data/ser-player-1.7.3/src/png_write.cpp
Examining data/ser-player-1.7.3/src/markers_dialog.cpp
Examining data/ser-player-1.7.3/src/header_details_dialog.h
Examining data/ser-player-1.7.3/src/selection_box_dialog.h
Examining data/ser-player-1.7.3/src/ser_player.h
Examining data/ser-player-1.7.3/src/gif_write.h
Examining data/ser-player-1.7.3/src/save_frames_dialog.cpp
Examining data/ser-player-1.7.3/src/processing_options_dialog.h
Examining data/ser-player-1.7.3/src/selection_box_dialog.cpp
Examining data/ser-player-1.7.3/src/pnglibconf.h
Examining data/ser-player-1.7.3/src/new_version_checker.cpp
Examining data/ser-player-1.7.3/src/save_frames_progress_dialog.h
Examining data/ser-player-1.7.3/src/pipp_timestamp.h
Examining data/ser-player-1.7.3/src/neuquant.h
Examining data/ser-player-1.7.3/src/gif_write.cpp
Examining data/ser-player-1.7.3/src/utf8_validator.h
Examining data/ser-player-1.7.3/src/playback_controls_widget.cpp
Examining data/ser-player-1.7.3/src/persistent_data.cpp
Examining data/ser-player-1.7.3/src/new_version_checker.h
Examining data/ser-player-1.7.3/src/frame_slider.cpp
Examining data/ser-player-1.7.3/src/pipp_video_write.h
Examining data/ser-player-1.7.3/src/lzw_compressor.cpp
Examining data/ser-player-1.7.3/src/pipp_buffer.cpp

FINAL RESULTS:

data/ser-player-1.7.3/src/application.cpp:45:27:  [4] (shell) system:
  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.
        locale = QLocale::system().name();
data/ser-player-1.7.3/src/pipp_avi_write.cpp:516: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(mp_filename.get(), filename);
data/ser-player-1.7.3/src/pipp_avi_write.cpp:526:9:  [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(mp_extension.get(), extension);  // Copy extension
data/ser-player-1.7.3/src/pipp_avi_write.cpp:655:9:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
        sprintf(p_split_filename.get(), "%s%s", mp_filename.get(), mp_extension.get());
data/ser-player-1.7.3/src/pipp_avi_write.cpp:658:9:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
        sprintf(p_split_filename.get(), "%s_%02d%s", mp_filename.get(), m_split_count, mp_extension.get());
data/ser-player-1.7.3/src/pipp_ser_write.cpp:66: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(mp_index_filename.get(), filename.toUtf8().constData());
data/ser-player-1.7.3/src/pipp_timestamp.cpp:239: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(temp, filepath.c_str());
data/ser-player-1.7.3/src/histogram_thread.cpp:65: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(mp_buffer.get(), p_image->get_p_buffer(), m_buffer_size);
data/ser-player-1.7.3/src/image.cpp:548:5:  [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(p_new_buffer, mp_buffer, m_width * m_height * 3 * sizeof(T));  // Copy current data into new buffer
data/ser-player-1.7.3/src/image.cpp:886:4:  [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(p_wr_data, mp_buffer, line_length * m_height * sizeof(T));
data/ser-player-1.7.3/src/image.cpp:921: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(p_wr_data, p_rd_data, line_length * sizeof(T));
data/ser-player-1.7.3/src/pipp_avi_write.cpp:523:9:  [2] (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). Risk is low because the source is a constant string.
        strcpy(mp_extension.get(), ".avi");  // Copy extension
data/ser-player-1.7.3/src/pipp_avi_write.h:76: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:81: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:90: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:116: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:120: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:151: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:165: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:181: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write.h:210: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 chr[4];
data/ser-player-1.7.3/src/pipp_avi_write_dib.cpp:98: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(dst_ptr, src_ptr, line_length);
data/ser-player-1.7.3/src/pipp_ser.cpp:37:21:  [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).
int32_t c_pipp_ser::open(
data/ser-player-1.7.3/src/pipp_ser.cpp:84: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 file_id[15];
data/ser-player-1.7.3/src/pipp_ser.cpp:368: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 file_id[15];
data/ser-player-1.7.3/src/pipp_ser.cpp:469: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 temp[41];
data/ser-player-1.7.3/src/pipp_ser.cpp:470:5:  [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(temp, m_header.observer, 40);
data/ser-player-1.7.3/src/pipp_ser.cpp:484: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 temp[41];
data/ser-player-1.7.3/src/pipp_ser.cpp:485:5:  [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(temp, m_header.instrument, 40);
data/ser-player-1.7.3/src/pipp_ser.cpp:499: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 temp[41];
data/ser-player-1.7.3/src/pipp_ser.cpp:500:5:  [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(temp, m_header.telescope, 40);
data/ser-player-1.7.3/src/pipp_ser.cpp:1177: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(write_ptr, read_ptr, line_size);
data/ser-player-1.7.3/src/pipp_ser.cpp:1198: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(write_ptr, read_ptr, m_header.image_width);
data/ser-player-1.7.3/src/pipp_ser.h:56: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 observer[40];  // Name of observer
data/ser-player-1.7.3/src/pipp_ser.h:57: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 instrument[40];  // Name of camera
data/ser-player-1.7.3/src/pipp_ser.h:58: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 telescope[40];  // Name of telescope
data/ser-player-1.7.3/src/pipp_ser.h:132: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).
        int32_t open(
data/ser-player-1.7.3/src/pipp_ser_write.cpp:67:5:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
    strcat(mp_index_filename.get(), ".idx");
data/ser-player-1.7.3/src/pipp_ser_write.cpp:127: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(write_ptr, read_ptr, m_width);
data/ser-player-1.7.3/src/pipp_ser_write.cpp:137: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(write_ptr, read_ptr, m_width * 2);
data/ser-player-1.7.3/src/pipp_ser_write.cpp:147: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(write_ptr, read_ptr, m_width * 3);
data/ser-player-1.7.3/src/pipp_ser_write.cpp:157: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(write_ptr, read_ptr, m_width * 3 * 2);
data/ser-player-1.7.3/src/pipp_ser_write.cpp:221:5:  [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(m_header.observer, observer.toUtf8().constData(), 40);
data/ser-player-1.7.3/src/pipp_ser_write.cpp:223:5:  [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(m_header.instrument, instrument.toUtf8().constData(), 40);
data/ser-player-1.7.3/src/pipp_ser_write.cpp:225:5:  [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(m_header.telescope, telescope.toUtf8().constData(), 40);
data/ser-player-1.7.3/src/pipp_ser_write.h:37: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 observer[40];  // Name of observer
data/ser-player-1.7.3/src/pipp_ser_write.h:38: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 instrument[40];  // Name of camera
data/ser-player-1.7.3/src/pipp_ser_write.h:39: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 telescope[40];  // Name of telescope
data/ser-player-1.7.3/src/pipp_timestamp.cpp:236: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 temp[1024];
data/ser-player-1.7.3/src/pipp_timestamp.cpp:345: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 new_mask[1024];
data/ser-player-1.7.3/src/pipp_timestamp.cpp:684:5:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
    sprintf(winjupos_friendly_prefix,
data/ser-player-1.7.3/src/pipp_utf8.cpp:38:18:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    int length = MultiByteToWideChar(CP_UTF8, 0, filename.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:40:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, filename.c_str(), -1, w_fname, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:43:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, mode.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:45:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, mode.c_str(), -1, w_mode, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:68:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, oldname.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:70:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, oldname.c_str(), -1, w_oldname, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:73:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, newname.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:75:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, newname.c_str(), -1, w_newname, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:97:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:99:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, w_path, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:119:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, oldname.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:121:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, oldname.c_str(), -1, w_oldname, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:124:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, newname.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:126:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, newname.c_str(), -1, w_newname, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:150:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:152:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, w_path, length);
data/ser-player-1.7.3/src/pipp_utf8.cpp:180:14:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    length = MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, 0, 0);
data/ser-player-1.7.3/src/pipp_utf8.cpp:182:5:  [2] (buffer) MultiByteToWideChar:
  Requires maximum length in CHARACTERS, not bytes (CWE-120).
    MultiByteToWideChar(CP_UTF8, 0, path.c_str(), -1, w_path, length);
data/ser-player-1.7.3/src/pipp_utf8_bsd.cpp:41:17:  [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 *ret = fopen(filename.c_str(), mode.c_str());
data/ser-player-1.7.3/src/pipp_utf8_bsd.cpp:85:15:  [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).
    read_fd = open(oldname.c_str(), O_RDONLY);
data/ser-player-1.7.3/src/pipp_utf8_bsd.cpp:95:16:  [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).
    write_fd = open(newname.c_str(), O_WRONLY | O_CREAT, stat_buf.st_mode);
data/ser-player-1.7.3/src/pipp_utf8_linux.cpp:82:15:  [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).
    read_fd = open(oldname.c_str(), O_RDONLY);
data/ser-player-1.7.3/src/pipp_utf8_linux.cpp:92:16:  [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).
    write_fd = open(newname.c_str(), O_WRONLY | O_CREAT, stat_buf.st_mode);
data/ser-player-1.7.3/src/pipp_utf8_osx.cpp:39:17:  [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 *ret = fopen(filename.c_str(), mode.c_str());
data/ser-player-1.7.3/src/ser_player.cpp:1470:40:  [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 (temp_html_file.open()) {
data/ser-player-1.7.3/src/ser_player.cpp:1803:34:  [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).
                            file.open(QIODevice::WriteOnly);
data/ser-player-1.7.3/src/ser_player.cpp:2013:35:  [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).
    m_total_frames = mp_ser_file->open(filename.toUtf8().constData(), 0, 0);
data/ser-player-1.7.3/src/ser_player.cpp:2039:43:  [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).
            m_total_frames = mp_ser_file->open(filename.toUtf8().constData(), 0, 0);
data/ser-player-1.7.3/src/gif_write.cpp:85:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    strncpy((char *)m_comment_extension.m_comment_data, GIF_COMMENT_STRING, sizeof(GIF_COMMENT_STRING) - 1);
data/ser-player-1.7.3/src/gif_write.cpp:1100:21:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    mismatch |= abs((int)(*p_current_data++) - (*p_last_data++)) > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1104:21:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                if (mismatch) {
data/ser-player-1.7.3/src/gif_write.cpp:1123:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                        mismatch |= abs((int)(*p_current_data++) - (*p_last_data++)) > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1127:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    if (mismatch) {
data/ser-player-1.7.3/src/gif_write.cpp:1138:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                        mismatch |= abs((int)(*p_current_data) - (*p_last_data)) > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1144:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    if (mismatch) {
data/ser-player-1.7.3/src/gif_write.cpp:1155:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                        mismatch |= abs((int)(*p_current_data) - (*p_last_data)) > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1161:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    if (mismatch) {
data/ser-player-1.7.3/src/gif_write.cpp:1182:21:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    mismatch |= diff > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1186:21:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                if (mismatch) {
data/ser-player-1.7.3/src/gif_write.cpp:1208:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                        mismatch |= diff > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1212:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    if (mismatch) {
data/ser-player-1.7.3/src/gif_write.cpp:1227:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                        mismatch |= diff > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1233:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    if (mismatch) {
data/ser-player-1.7.3/src/gif_write.cpp:1247:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                        mismatch |= diff > m_unchanged_border_tolerance;
data/ser-player-1.7.3/src/gif_write.cpp:1253:25:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
                    if (mismatch) {
data/ser-player-1.7.3/src/pipp_avi_write.cpp:514:32:  [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).
    mp_filename.reset(new char[strlen(filename) + 1]);
data/ser-player-1.7.3/src/pipp_avi_write.cpp:522: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).
        mp_extension.reset(new char[strlen(".avi") + 1]);
data/ser-player-1.7.3/src/pipp_avi_write.cpp:525: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).
        mp_extension.reset(new char[strlen(extension) + 1]);
data/ser-player-1.7.3/src/pipp_avi_write.cpp:652:55:  [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).
    std::unique_ptr<char[]> p_split_filename(new char[strlen(mp_filename.get()) + 3 + strlen(mp_extension.get()) + 1]);
data/ser-player-1.7.3/src/pipp_avi_write.cpp:652:87:  [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).
    std::unique_ptr<char[]> p_split_filename(new char[strlen(mp_filename.get()) + 3 + strlen(mp_extension.get()) + 1]);
data/ser-player-1.7.3/src/pipp_timestamp.cpp:242: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).
    for (uint32_t x = 0; x < strlen(temp); x++) {
data/ser-player-1.7.3/src/pipp_timestamp.cpp:268: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).
    for (uint32_t x = 0; x < strlen(mask); x++) {
data/ser-player-1.7.3/src/pipp_timestamp.cpp:375: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).
        if (strlen(char_ptr) < strlen(new_mask)) {
data/ser-player-1.7.3/src/pipp_timestamp.cpp:375:32:  [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(char_ptr) < strlen(new_mask)) {
data/ser-player-1.7.3/src/pipp_timestamp.cpp:383:34:  [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).
        for (uint32_t x = 0; x < strlen(char_ptr) - strlen(new_mask); x++) {
data/ser-player-1.7.3/src/pipp_timestamp.cpp:383:53:  [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).
        for (uint32_t x = 0; x < strlen(char_ptr) - strlen(new_mask); x++) {
data/ser-player-1.7.3/src/pipp_timestamp.cpp:385:38:  [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).
            for (uint32_t y = 0; y < strlen(new_mask); y++) {
data/ser-player-1.7.3/src/pipp_timestamp.cpp:530: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).
    for (uint32_t x = 0; x < strlen(new_mask); x++) {
data/ser-player-1.7.3/src/tiff_write.cpp:294: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).
        cerr.write(filename, strlen(filename));
data/ser-player-1.7.3/src/tiff_write.cpp:450: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).
        cerr.write(filename, strlen(filename));

ANALYSIS SUMMARY:

Hits = 111
Lines analyzed = 21113 in approximately 0.48 seconds (44118 lines/second)
Physical Source Lines of Code (SLOC) = 14230
Hits@level = [0]  86 [1]  32 [2]  72 [3]   0 [4]   7 [5]   0
Hits@level+ = [0+] 197 [1+] 111 [2+]  79 [3+]   7 [4+]   7 [5+]   0
Hits/KSLOC@level+ = [0+] 13.844 [1+] 7.80042 [2+] 5.55165 [3+] 0.491918 [4+] 0.491918 [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.