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/print-manager-20.08.3/add-printer/DevicesModel.h Examining data/print-manager-20.08.3/add-printer/ChooseUri.cpp Examining data/print-manager-20.08.3/add-printer/PageAddPrinter.cpp Examining data/print-manager-20.08.3/add-printer/PageDestinations.cpp Examining data/print-manager-20.08.3/add-printer/PageAddPrinter.h Examining data/print-manager-20.08.3/add-printer/PageChoosePrinters.cpp Examining data/print-manager-20.08.3/add-printer/PageChoosePPD.cpp Examining data/print-manager-20.08.3/add-printer/GenericPage.cpp Examining data/print-manager-20.08.3/add-printer/ChooseUri.h Examining data/print-manager-20.08.3/add-printer/ChooseSerial.cpp Examining data/print-manager-20.08.3/add-printer/ChooseSamba.cpp Examining data/print-manager-20.08.3/add-printer/GenericPage.h Examining data/print-manager-20.08.3/add-printer/AddPrinter.cpp Examining data/print-manager-20.08.3/add-printer/ChooseSamba.h Examining data/print-manager-20.08.3/add-printer/PageChoosePPD.h Examining data/print-manager-20.08.3/add-printer/main.cpp Examining data/print-manager-20.08.3/add-printer/AddPrinterAssistant.cpp Examining data/print-manager-20.08.3/add-printer/ChooseSocket.h Examining data/print-manager-20.08.3/add-printer/ChooseLpd.h Examining data/print-manager-20.08.3/add-printer/ChooseSocket.cpp Examining data/print-manager-20.08.3/add-printer/PageDestinations.h Examining data/print-manager-20.08.3/add-printer/AddPrinter.h Examining data/print-manager-20.08.3/add-printer/AddPrinterAssistant.h Examining data/print-manager-20.08.3/add-printer/ChooseLpd.cpp Examining data/print-manager-20.08.3/add-printer/PageChoosePrinters.h Examining data/print-manager-20.08.3/add-printer/ChooseSerial.h Examining data/print-manager-20.08.3/add-printer/DevicesModel.cpp Examining data/print-manager-20.08.3/declarative-plugins/qmlplugins.h Examining data/print-manager-20.08.3/declarative-plugins/qmlplugins.cpp Examining data/print-manager-20.08.3/configure-printer/PrinterBehavior.h Examining data/print-manager-20.08.3/configure-printer/ConfigureDialog.h Examining data/print-manager-20.08.3/configure-printer/ConfigurePrinter.cpp Examining data/print-manager-20.08.3/configure-printer/Debug.cpp Examining data/print-manager-20.08.3/configure-printer/PrinterBehavior.cpp Examining data/print-manager-20.08.3/configure-printer/SelectMakeModelDialog.cpp Examining data/print-manager-20.08.3/configure-printer/ModifyPrinter.h Examining data/print-manager-20.08.3/configure-printer/ConfigurePrinterInterface.cpp Examining data/print-manager-20.08.3/configure-printer/PrinterPage.cpp Examining data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp Examining data/print-manager-20.08.3/configure-printer/Debug.h Examining data/print-manager-20.08.3/configure-printer/ConfigurePrinterInterface.h Examining data/print-manager-20.08.3/configure-printer/main.cpp Examining data/print-manager-20.08.3/configure-printer/SelectMakeModelDialog.h Examining data/print-manager-20.08.3/configure-printer/ConfigurePrinter.h Examining data/print-manager-20.08.3/configure-printer/ConfigureDialog.cpp Examining data/print-manager-20.08.3/configure-printer/PrinterOptions.h Examining data/print-manager-20.08.3/configure-printer/ModifyPrinter.cpp Examining data/print-manager-20.08.3/configure-printer/PrinterPage.h Examining data/print-manager-20.08.3/print-manager-kded/Debug.cpp Examining data/print-manager-20.08.3/print-manager-kded/PrintManagerKded.cpp Examining data/print-manager-20.08.3/print-manager-kded/NewPrinterNotification.cpp Examining data/print-manager-20.08.3/print-manager-kded/Debug.h Examining data/print-manager-20.08.3/print-manager-kded/NewPrinterNotification.h Examining data/print-manager-20.08.3/print-manager-kded/PrintManagerKded.h Examining data/print-manager-20.08.3/libkcups/KCupsPrinter.cpp Examining data/print-manager-20.08.3/libkcups/SelectMakeModel.h Examining data/print-manager-20.08.3/libkcups/KIppRequest_p.h Examining data/print-manager-20.08.3/libkcups/PPDModel.h Examining data/print-manager-20.08.3/libkcups/KCupsJob.h Examining data/print-manager-20.08.3/libkcups/KCupsRequest.h Examining data/print-manager-20.08.3/libkcups/KCupsServer.cpp Examining data/print-manager-20.08.3/libkcups/ClassListWidget.cpp Examining data/print-manager-20.08.3/libkcups/Debug.cpp Examining data/print-manager-20.08.3/libkcups/KIppRequest.h Examining data/print-manager-20.08.3/libkcups/JobModel.cpp Examining data/print-manager-20.08.3/libkcups/ClassListWidget.h Examining data/print-manager-20.08.3/libkcups/PrinterSortFilterModel.cpp Examining data/print-manager-20.08.3/libkcups/NoSelectionRectDelegate.h Examining data/print-manager-20.08.3/libkcups/KCupsPrinter.h Examining data/print-manager-20.08.3/libkcups/KCupsConnection.cpp Examining data/print-manager-20.08.3/libkcups/PPDModel.cpp Examining data/print-manager-20.08.3/libkcups/PrinterModel.cpp Examining data/print-manager-20.08.3/libkcups/KCupsServer.h Examining data/print-manager-20.08.3/libkcups/PrinterSortFilterModel.h Examining data/print-manager-20.08.3/libkcups/KCupsRequest.cpp Examining data/print-manager-20.08.3/libkcups/JobModel.h Examining data/print-manager-20.08.3/libkcups/KCupsJob.cpp Examining data/print-manager-20.08.3/libkcups/Debug.h Examining data/print-manager-20.08.3/libkcups/NoSelectionRectDelegate.cpp Examining data/print-manager-20.08.3/libkcups/JobSortFilterModel.h Examining data/print-manager-20.08.3/libkcups/JobSortFilterModel.cpp Examining data/print-manager-20.08.3/libkcups/KIppRequest.cpp Examining data/print-manager-20.08.3/libkcups/PrinterModel.h Examining data/print-manager-20.08.3/libkcups/ProcessRunner.cpp Examining data/print-manager-20.08.3/libkcups/KCupsPasswordDialog.h Examining data/print-manager-20.08.3/libkcups/ProcessRunner.h Examining data/print-manager-20.08.3/libkcups/KCupsConnection.h Examining data/print-manager-20.08.3/libkcups/SelectMakeModel.cpp Examining data/print-manager-20.08.3/libkcups/KCupsPasswordDialog.cpp Examining data/print-manager-20.08.3/printer-manager-kcm/PrinterDescription.h Examining data/print-manager-20.08.3/printer-manager-kcm/PrinterDelegate.h Examining data/print-manager-20.08.3/printer-manager-kcm/PrintKCM.h Examining data/print-manager-20.08.3/printer-manager-kcm/PrinterDescription.cpp Examining data/print-manager-20.08.3/printer-manager-kcm/PrintKCM.cpp Examining data/print-manager-20.08.3/printer-manager-kcm/PrinterDelegate.cpp Examining data/print-manager-20.08.3/printqueue/PrintQueueUi.cpp Examining data/print-manager-20.08.3/printqueue/PrintQueue.h Examining data/print-manager-20.08.3/printqueue/PrintQueue.cpp Examining data/print-manager-20.08.3/printqueue/main.cpp Examining data/print-manager-20.08.3/printqueue/PrintQueueUi.h FINAL RESULTS: data/print-manager-20.08.3/add-printer/PageChoosePPD.cpp:88: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). tempFile->open(); data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:451: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 keyword[256]; /* Parameter name */ data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:697: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 tempfile[1024]; data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:701: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[1024], /* Line from PPD file */ data/print-manager-20.08.3/libkcups/KCupsRequest.cpp:428: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 command_file[1024]; /* Command "file" */ data/print-manager-20.08.3/libkcups/KIppRequest.cpp:182: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 uri[HTTP_MAX_URI]; // printer URI data/print-manager-20.08.3/libkcups/KIppRequest_p.h:49:34: [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. const char **ptr = new const char *[list.size() + 1]; data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:567: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). integer = (long)strlen(val); data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:594: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). bufptr += strlen(bufptr); data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:646: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). integer = (long)strlen(val); data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:681: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). bufptr += strlen(bufptr); data/print-manager-20.08.3/configure-printer/PrinterOptions.cpp:688:9: [1] (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 character. strcpy(bufptr, "}"); data/print-manager-20.08.3/libkcups/KCupsRequest.cpp:463:47: [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(command_file)); ANALYSIS SUMMARY: Hits = 13 Lines analyzed = 14825 in approximately 0.43 seconds (34815 lines/second) Physical Source Lines of Code (SLOC) = 9850 Hits@level = [0] 14 [1] 6 [2] 7 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 27 [1+] 13 [2+] 7 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 2.74112 [1+] 1.3198 [2+] 0.71066 [3+] 0 [4+] 0 [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.