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/gbemol-0.3.2/src/gbemol-info.h Examining data/gbemol-0.3.2/src/gbemol-net.h Examining data/gbemol-0.3.2/src/gbemol-net.c Examining data/gbemol-0.3.2/src/gbemol-marshal.c Examining data/gbemol-0.3.2/src/gbemol.h Examining data/gbemol-0.3.2/src/gbemol-main.c Examining data/gbemol-0.3.2/src/gbemol-mpd.c Examining data/gbemol-0.3.2/src/gbemol-amazon.c Examining data/gbemol-0.3.2/src/gbemol-amazon.h Examining data/gbemol-0.3.2/src/gbemol-marshal.h Examining data/gbemol-0.3.2/src/gbemol-playlist.c Examining data/gbemol-0.3.2/src/gbemol-playlist.h Examining data/gbemol-0.3.2/src/libmpdclient.h Examining data/gbemol-0.3.2/src/gbemol-mpd.h Examining data/gbemol-0.3.2/src/bacon-volume.c Examining data/gbemol-0.3.2/src/gbemol-locale.h Examining data/gbemol-0.3.2/src/gbemol-library.h Examining data/gbemol-0.3.2/src/bacon-volume.h Examining data/gbemol-0.3.2/src/gbemol-app.h Examining data/gbemol-0.3.2/src/gbemol-preferences.h Examining data/gbemol-0.3.2/src/gbemol-utils.h Examining data/gbemol-0.3.2/src/gbemol-library.c Examining data/gbemol-0.3.2/src/gbemol-info.c Examining data/gbemol-0.3.2/src/libmpdclient.c Examining data/gbemol-0.3.2/src/gbemol-preferences.c Examining data/gbemol-0.3.2/src/gbemol-utils.c Examining data/gbemol-0.3.2/src/gbemol-app.c FINAL RESULTS: data/gbemol-0.3.2/src/gbemol-utils.c:160:3: [5] (race) chmod: This accepts filename arguments; if an attacker can move those files, a race condition results. (CWE-362). Use fchmod( ) instead. chmod (path, 0644); data/gbemol-0.3.2/src/libmpdclient.c:410:2: [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(connection->buffer,rt+1); data/gbemol-0.3.2/src/libmpdclient.c:596:3: [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(connection->errorStr, output); data/gbemol-0.3.2/src/gbemol-app.c:816:54: [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. void gbemol_app_set_random (GbemolApp* app, gboolean random) data/gbemol-0.3.2/src/gbemol-app.c:818:91: [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 (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (app->priv->mnu_item_random)) != random) data/gbemol-0.3.2/src/gbemol-app.c:819:85: [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. gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (app->priv->mnu_item_random), random); data/gbemol-0.3.2/src/gbemol-app.h:64:54: [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. void gbemol_app_set_random (GbemolApp* app, gboolean random); data/gbemol-0.3.2/src/gbemol-main.c:75:16: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((opt = getopt(argc, argv, "mclpfh")) != -1) data/gbemol-0.3.2/src/gbemol-main.c:176:43: [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. gbemol_app_set_random (app, mpd->status->random); data/gbemol-0.3.2/src/gbemol-mpd.c:677:54: [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. void gbemol_mpd_set_random (GbemolMpd *obj, gboolean random) data/gbemol-0.3.2/src/gbemol-mpd.c:682:42: [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. mpd_sendRandomCommand (obj->priv->conn, random); data/gbemol-0.3.2/src/gbemol-mpd.h:71:54: [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. void gbemol_mpd_set_random (GbemolMpd *obj, gboolean random); data/gbemol-0.3.2/src/gbemol-utils.c:156:44: [3] (buffer) g_get_home_dir: This function is synonymous with 'getenv("HOME")';it returns untrustable input if the environment can beset by an attacker. It can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. path = g_strdup_printf ("%s/.gbemol.cfg", g_get_home_dir()); data/gbemol-0.3.2/src/gbemol-utils.c:422:44: [3] (buffer) g_get_home_dir: This function is synonymous with 'getenv("HOME")';it returns untrustable input if the environment can beset by an attacker. It can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. str_dir = g_strdup_printf ("%s/.covers/", g_get_home_dir()); data/gbemol-0.3.2/src/gbemol-utils.c:430:49: [3] (buffer) g_get_home_dir: This function is synonymous with 'getenv("HOME")';it returns untrustable input if the environment can beset by an attacker. It can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. str = g_strdup_printf ("%s/.covers/%s-%s.jpg", g_get_home_dir(), song->artist, song->album); data/gbemol-0.3.2/src/libmpdclient.h:171:6: [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/gbemol-0.3.2/src/gbemol-utils.c:158:12: [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 ((fd = open (path, O_CREAT, 0777)) != -1) data/gbemol-0.3.2/src/gbemol-utils.c:208:8: [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). cfg = fopen (path, "w"); data/gbemol-0.3.2/src/libmpdclient.c:92:3: [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(connection->errorStr, data/gbemol-0.3.2/src/libmpdclient.c:124:2: [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 service[INTLEN+1]; data/gbemol-0.3.2/src/libmpdclient.c:214: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((char *)&sin.sin_addr.s_addr,(char *)he->h_addr, data/gbemol-0.3.2/src/libmpdclient.c:220:3: [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(connection->errorStr,"address type is not IPv4"); data/gbemol-0.3.2/src/libmpdclient.c:227:3: [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(connection->errorStr,"problems creating socket"); data/gbemol-0.3.2/src/libmpdclient.c:247:1: [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 * mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES] = data/gbemol-0.3.2/src/libmpdclient.c:441:3: [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(connection->errorStr,"not done processing current command"); data/gbemol-0.3.2/src/libmpdclient.c:505:3: [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(connection->errorStr,"already done processing current command"); data/gbemol-0.3.2/src/libmpdclient.c:523:4: [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(connection->errorStr,"buffer overrun"); data/gbemol-0.3.2/src/libmpdclient.c:543:5: [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(connection->errorStr,"connection" data/gbemol-0.3.2/src/libmpdclient.c:555:4: [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(connection->errorStr,"connection timeout"); data/gbemol-0.3.2/src/libmpdclient.c:569:4: [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(connection->errorStr, "expected more list_OK's"); data/gbemol-0.3.2/src/libmpdclient.c:580:4: [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(connection->errorStr, data/gbemol-0.3.2/src/libmpdclient.c:698: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). status->volume = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:701: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). status->repeat = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:704: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). status->random = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:710:29: [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). status->playlistLength = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:713:22: [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). status->bitRate = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:730:19: [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). status->song = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:733: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). status->songid = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:740: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). status->elapsedTime = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:741:25: [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). status->totalTime = atoi(tok+1); data/gbemol-0.3.2/src/libmpdclient.c:748:24: [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). status->crossfade = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:751:25: [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). status->updatingDb = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:756: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). status->sampleRate = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:757:20: [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). status->bits = atoi(++tok); data/gbemol-0.3.2/src/libmpdclient.c:760:25: [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). status->channels = atoi(tok+1); data/gbemol-0.3.2/src/libmpdclient.c:776:3: [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(connection->errorStr,"state not found"); data/gbemol-0.3.2/src/libmpdclient.c:825:29: [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). stats->numberOfArtists = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:828: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). stats->numberOfAlbums = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:831: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). stats->numberOfSongs = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:888: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). stats->numberOfSongs = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:1113:29: [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). entity->info.song->pos = atoi(connection->returnElement->value); data/gbemol-0.3.2/src/libmpdclient.c:1117:4: [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(connection->errorStr,"problem parsing song info"); data/gbemol-0.3.2/src/libmpdclient.c:1156:31: [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). entity->info.song->time = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:1160: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). entity->info.song->pos = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:1164:29: [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). entity->info.song->id = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:1325:2: [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 st[10]; data/gbemol-0.3.2/src/libmpdclient.c:1328:32: [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. if(table == MPD_TABLE_ARTIST) strcpy(st,"artist"); data/gbemol-0.3.2/src/libmpdclient.c:1329:36: [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. else if(table == MPD_TABLE_ALBUM) strcpy(st,"album"); data/gbemol-0.3.2/src/libmpdclient.c:1332:3: [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(connection->errorStr,"unknown table for list"); data/gbemol-0.3.2/src/libmpdclient.c:1375:12: [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). retval = atoi(string); data/gbemol-0.3.2/src/libmpdclient.c:1546:9: [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). ret = atoi(jobid); data/gbemol-0.3.2/src/libmpdclient.c:1609:3: [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(connection->errorStr,"already in command list mode"); data/gbemol-0.3.2/src/libmpdclient.c:1619:3: [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(connection->errorStr,"already in command list mode"); data/gbemol-0.3.2/src/libmpdclient.c:1630:3: [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(connection->errorStr,"not in command list mode"); data/gbemol-0.3.2/src/libmpdclient.c:1664:17: [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). output->id = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:1670:22: [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). output->enabled = atoi(re->value); data/gbemol-0.3.2/src/libmpdclient.c:1755:3: [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(connection->errorStr, "search already in progress"); data/gbemol-0.3.2/src/libmpdclient.c:1767:3: [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(connection->errorStr, "search already in progress"); data/gbemol-0.3.2/src/libmpdclient.c:1778:3: [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(connection->errorStr, "search already in progress"); data/gbemol-0.3.2/src/libmpdclient.c:1793:3: [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(connection->errorStr, "search already in progress"); data/gbemol-0.3.2/src/libmpdclient.c:1799:3: [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(connection->errorStr, "invalid type specified"); data/gbemol-0.3.2/src/libmpdclient.c:1821:3: [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(connection->errorStr, "no search in progress"); data/gbemol-0.3.2/src/libmpdclient.c:1827:3: [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(connection->errorStr, "invalid type specified"); data/gbemol-0.3.2/src/libmpdclient.c:1833:3: [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(connection->errorStr, "no name specified"); data/gbemol-0.3.2/src/libmpdclient.c:1856:3: [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(connection->errorStr, "no search in progress"); data/gbemol-0.3.2/src/libmpdclient.h:96: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. extern char * mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES]; data/gbemol-0.3.2/src/libmpdclient.h:112:2: [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 errorStr[MPD_ERRORSTR_MAX_LENGTH+1]; data/gbemol-0.3.2/src/libmpdclient.h:119:2: [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[MPD_BUFFER_MAX_LENGTH+1]; data/gbemol-0.3.2/src/libmpdclient.c:273:15: [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 = malloc(strlen(arg) * 2 + 1); data/gbemol-0.3.2/src/libmpdclient.c:277:10: [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(i = strlen(arg)+1; i != 0; --i) { data/gbemol-0.3.2/src/libmpdclient.c:315:40: [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(strncmp(output,MPD_WELCOME_MESSAGE,strlen(MPD_WELCOME_MESSAGE))) { data/gbemol-0.3.2/src/libmpdclient.c:323: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). tmp = &output[strlen(MPD_WELCOME_MESSAGE)]; data/gbemol-0.3.2/src/libmpdclient.c:333: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). &output[strlen(MPD_WELCOME_MESSAGE)]); data/gbemol-0.3.2/src/libmpdclient.c:350:2: [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(connection->buffer,""); data/gbemol-0.3.2/src/libmpdclient.c:353:2: [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(connection->errorStr,""); data/gbemol-0.3.2/src/libmpdclient.c:411: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). connection->buflen = strlen(connection->buffer); data/gbemol-0.3.2/src/libmpdclient.c:438:19: [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 commandLen = strlen(command); data/gbemol-0.3.2/src/libmpdclient.c:591:26: [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(strncmp(output,"ACK",strlen("ACK"))==0) { data/gbemol-0.3.2/src/libmpdclient.c:1133:5: [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(re->value)) { data/gbemol-0.3.2/src/libmpdclient.c:1241: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). int len = strlen("playlistinfo")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1249: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). int len = strlen("playlistid")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1257: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). int len = strlen("plchanges")+2+LONGLONGLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1265: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). int len = strlen("plchangesposid")+2+LONGLONGLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1274: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). int len = strlen("listall")+2+strlen(sDir)+3; data/gbemol-0.3.2/src/libmpdclient.c:1274: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). int len = strlen("listall")+2+strlen(sDir)+3; data/gbemol-0.3.2/src/libmpdclient.c:1284: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). int len = strlen("listallinfo")+2+strlen(sDir)+3; data/gbemol-0.3.2/src/libmpdclient.c:1284: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). int len = strlen("listallinfo")+2+strlen(sDir)+3; data/gbemol-0.3.2/src/libmpdclient.c:1294: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). int len = strlen("lsinfo")+2+strlen(sDir)+3; data/gbemol-0.3.2/src/libmpdclient.c:1294: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). int len = strlen("lsinfo")+2+strlen(sDir)+3; data/gbemol-0.3.2/src/libmpdclient.c:1337:9: [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). len = strlen("list")+1+strlen(sanitArg1)+2+strlen(st)+3; data/gbemol-0.3.2/src/libmpdclient.c:1337:26: [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). len = strlen("list")+1+strlen(sanitArg1)+2+strlen(st)+3; data/gbemol-0.3.2/src/libmpdclient.c:1337:46: [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). len = strlen("list")+1+strlen(sanitArg1)+2+strlen(st)+3; data/gbemol-0.3.2/src/libmpdclient.c:1343:9: [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). len = strlen("list")+1+strlen(st)+2; data/gbemol-0.3.2/src/libmpdclient.c:1343:26: [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). len = strlen("list")+1+strlen(st)+2; data/gbemol-0.3.2/src/libmpdclient.c:1353: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). int len = strlen("add")+2+strlen(sFile)+3; data/gbemol-0.3.2/src/libmpdclient.c:1353: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). int len = strlen("add")+2+strlen(sFile)+3; data/gbemol-0.3.2/src/libmpdclient.c:1365: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). int len = strlen("addid")+2+strlen(sFile)+3; data/gbemol-0.3.2/src/libmpdclient.c:1365: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 len = strlen("addid")+2+strlen(sFile)+3; data/gbemol-0.3.2/src/libmpdclient.c:1383: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). int len = strlen("delete")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1391: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). int len = strlen("deleteid")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1400: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). int len = strlen("save")+2+strlen(sName)+3; data/gbemol-0.3.2/src/libmpdclient.c:1400: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 len = strlen("save")+2+strlen(sName)+3; data/gbemol-0.3.2/src/libmpdclient.c:1410: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). int len = strlen("load")+2+strlen(sName)+3; data/gbemol-0.3.2/src/libmpdclient.c:1410: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 len = strlen("load")+2+strlen(sName)+3; data/gbemol-0.3.2/src/libmpdclient.c:1420: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). int len = strlen("rm")+2+strlen(sName)+3; data/gbemol-0.3.2/src/libmpdclient.c:1420:27: [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 len = strlen("rm")+2+strlen(sName)+3; data/gbemol-0.3.2/src/libmpdclient.c:1433: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). int len = strlen("rename")+2+strlen(sFrom)+3+strlen(sTo)+3; data/gbemol-0.3.2/src/libmpdclient.c:1433: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). int len = strlen("rename")+2+strlen(sFrom)+3+strlen(sTo)+3; data/gbemol-0.3.2/src/libmpdclient.c:1433: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). int len = strlen("rename")+2+strlen(sFrom)+3+strlen(sTo)+3; data/gbemol-0.3.2/src/libmpdclient.c:1451: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). int len = strlen("play")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1459: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). int len = strlen("playid")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1471: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). int len = strlen("pause")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1483: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). int len = strlen("move")+2+INTLEN+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1491: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). int len = strlen("moveid")+2+INTLEN+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1499: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). int len = strlen("swap")+2+INTLEN+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1507: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). int len = strlen("swapid")+2+INTLEN+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1515: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). int len = strlen("seek")+2+INTLEN+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1523: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). int len = strlen("seekid")+2+INTLEN+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1532: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). int len = strlen("update")+2+strlen(sPath)+3; data/gbemol-0.3.2/src/libmpdclient.c:1532: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). int len = strlen("update")+2+strlen(sPath)+3; data/gbemol-0.3.2/src/libmpdclient.c:1558: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). int len = strlen("repeat")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1566: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). int len = strlen("random")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1574: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). int len = strlen("setvol")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1582: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). int len = strlen("volume")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1590: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). int len = strlen("crossfade")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1599: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). int len = strlen("password")+2+strlen(sPass)+3; data/gbemol-0.3.2/src/libmpdclient.c:1599: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). int len = strlen("password")+2+strlen(sPass)+3; data/gbemol-0.3.2/src/libmpdclient.c:1685: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). int len = strlen("enableoutput")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1693: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). int len = strlen("disableoutput")+2+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1806:10: [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). len = 5+strlen(strtype)+1; data/gbemol-0.3.2/src/libmpdclient.c:1842: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). len = strlen(string)+1+strlen(strtype)+2+strlen(arg)+2; data/gbemol-0.3.2/src/libmpdclient.c:1842: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). len = strlen(string)+1+strlen(strtype)+2+strlen(arg)+2; data/gbemol-0.3.2/src/libmpdclient.c:1842: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). len = strlen(string)+1+strlen(strtype)+2+strlen(arg)+2; data/gbemol-0.3.2/src/libmpdclient.c:1861: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). len = strlen(connection->request)+2; data/gbemol-0.3.2/src/libmpdclient.c:1881: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). int len = strlen("listplaylistinfo")+2+strlen(arg)+3; data/gbemol-0.3.2/src/libmpdclient.c:1881: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). int len = strlen("listplaylistinfo")+2+strlen(arg)+3; data/gbemol-0.3.2/src/libmpdclient.c:1899: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). int len = strlen("listplaylist")+2+strlen(arg)+3; data/gbemol-0.3.2/src/libmpdclient.c:1899: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). int len = strlen("listplaylist")+2+strlen(arg)+3; data/gbemol-0.3.2/src/libmpdclient.c:1910: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). int len = strlen("playlistclear")+2+strlen(sPath)+3; data/gbemol-0.3.2/src/libmpdclient.c:1910: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). int len = strlen("playlistclear")+2+strlen(sPath)+3; data/gbemol-0.3.2/src/libmpdclient.c:1923: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). int len = strlen("playlistadd")+2+strlen(sPlaylist)+3+strlen(sPath)+3; data/gbemol-0.3.2/src/libmpdclient.c:1923: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). int len = strlen("playlistadd")+2+strlen(sPlaylist)+3+strlen(sPath)+3; data/gbemol-0.3.2/src/libmpdclient.c:1923:56: [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 len = strlen("playlistadd")+2+strlen(sPlaylist)+3+strlen(sPath)+3; data/gbemol-0.3.2/src/libmpdclient.c:1936: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). int len = strlen("playlistmove")+ data/gbemol-0.3.2/src/libmpdclient.c:1937:14: [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). 2+strlen(sPlaylist)+3+INTLEN+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1950: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). int len = strlen("playlistdelete")+2+strlen(sPlaylist)+3+INTLEN+3; data/gbemol-0.3.2/src/libmpdclient.c:1950: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). int len = strlen("playlistdelete")+2+strlen(sPlaylist)+3+INTLEN+3; ANALYSIS SUMMARY: Hits = 157 Lines analyzed = 11146 in approximately 0.27 seconds (41910 lines/second) Physical Source Lines of Code (SLOC) = 8227 Hits@level = [0] 60 [1] 79 [2] 62 [3] 13 [4] 2 [5] 1 Hits@level+ = [0+] 217 [1+] 157 [2+] 78 [3+] 16 [4+] 3 [5+] 1 Hits/KSLOC@level+ = [0+] 26.3766 [1+] 19.0835 [2+] 9.48098 [3+] 1.94482 [4+] 0.364653 [5+] 0.121551 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.