diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/debug_menu.c | 4 | ||||
-rw-r--r-- | apps/playlist_viewer.c | 9 | ||||
-rw-r--r-- | apps/screens.c | 10 |
3 files changed, 18 insertions, 5 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 87a41920b9..0b0bc8fc2b 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -1627,7 +1627,9 @@ static int ata_smart_attr_to_string( | |||
1627 | if (len >= name_sz) len = name_sz-1; | 1627 | if (len >= name_sz) len = name_sz-1; |
1628 | slen += len; | 1628 | slen += len; |
1629 | } | 1629 | } |
1630 | snprintf(str+slen, size-slen, "%s", buf); | 1630 | |
1631 | if (!memccpy (str+slen, buf, '\0', size-slen)) | ||
1632 | (str+slen)[size-slen - 1] = '\0'; | ||
1631 | } | 1633 | } |
1632 | 1634 | ||
1633 | return 1; /* ok */ | 1635 | return 1; /* ok */ |
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index d2774e67b0..f1f8954113 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c | |||
@@ -516,7 +516,10 @@ static enum pv_onplay_result open_with(const struct playlist_entry *current_trac | |||
516 | { | 516 | { |
517 | char selected_track[MAX_PATH]; | 517 | char selected_track[MAX_PATH]; |
518 | close_playlist_viewer(); | 518 | close_playlist_viewer(); |
519 | snprintf(selected_track, sizeof(selected_track), "%s", current_track->name); | 519 | |
520 | if (!memccpy (selected_track, current_track->name, '\0', sizeof(selected_track))) | ||
521 | selected_track[sizeof(selected_track) - 1] = '\0'; | ||
522 | |||
520 | 523 | ||
521 | return (filetype_list_viewers(selected_track) == | 524 | return (filetype_list_viewers(selected_track) == |
522 | PLUGIN_USB_CONNECTED ? PV_ONPLAY_USB_CLOSED : PV_ONPLAY_CLOSED); | 525 | PLUGIN_USB_CONNECTED ? PV_ONPLAY_USB_CLOSED : PV_ONPLAY_CLOSED); |
@@ -528,7 +531,9 @@ static enum pv_onplay_result open_pictureflow(const struct playlist_entry *curre | |||
528 | { | 531 | { |
529 | char selected_track[MAX_PATH]; | 532 | char selected_track[MAX_PATH]; |
530 | close_playlist_viewer(); | 533 | close_playlist_viewer(); |
531 | snprintf(selected_track, sizeof(selected_track), "%s", current_track->name); | 534 | |
535 | if (!memccpy (selected_track, current_track->name, '\0', sizeof(selected_track))) | ||
536 | selected_track[sizeof(selected_track) - 1] = '\0'; | ||
532 | 537 | ||
533 | return (filetype_load_plugin((void *)"pictureflow", selected_track) == | 538 | return (filetype_load_plugin((void *)"pictureflow", selected_track) == |
534 | PLUGIN_USB_CONNECTED ? PV_ONPLAY_USB_CLOSED : PV_ONPLAY_CLOSED); | 539 | PLUGIN_USB_CONNECTED ? PV_ONPLAY_USB_CLOSED : PV_ONPLAY_CLOSED); |
diff --git a/apps/screens.c b/apps/screens.c index 70374a1f08..9191922c31 100644 --- a/apps/screens.c +++ b/apps/screens.c | |||
@@ -561,7 +561,10 @@ static const char * id3_get_or_speak_info(int selected_item, void* data, | |||
561 | case LANG_ID3_COMMENT: | 561 | case LANG_ID3_COMMENT: |
562 | if (!id3->comment) | 562 | if (!id3->comment) |
563 | return NULL; | 563 | return NULL; |
564 | snprintf(buffer, buffer_len, "%s", id3->comment); | 564 | |
565 | if (!memccpy (buffer, id3->comment, '\0', buffer_len)) | ||
566 | buffer[buffer_len - 1] = '\0'; | ||
567 | |||
565 | val=buffer; | 568 | val=buffer; |
566 | if(say_it && val) | 569 | if(say_it && val) |
567 | talk_spell(val, true); | 570 | talk_spell(val, true); |
@@ -608,7 +611,10 @@ static const char * id3_get_or_speak_info(int selected_item, void* data, | |||
608 | case LANG_FORMAT: | 611 | case LANG_FORMAT: |
609 | if (id3->codectype >= AFMT_NUM_CODECS) | 612 | if (id3->codectype >= AFMT_NUM_CODECS) |
610 | return NULL; | 613 | return NULL; |
611 | snprintf(buffer, buffer_len, "%s", audio_formats[id3->codectype].label); | 614 | |
615 | if (!memccpy (buffer, audio_formats[id3->codectype].label, '\0', buffer_len)) | ||
616 | buffer[buffer_len - 1] = '\0'; | ||
617 | |||
612 | val=buffer; | 618 | val=buffer; |
613 | if(say_it) | 619 | if(say_it) |
614 | talk_spell(val, true); | 620 | talk_spell(val, true); |