You need to sign in or sign up before continuing.
Commit e4f265b2 authored by Warren Dukes's avatar Warren Dukes

be more careful with string manipulations, use strncpy as much as possible

git-svn-id: https://svn.musicpd.org/mpd/trunk@56 09075e82-0dd4-0310-85a5-a0d7c8717e4f
parent ca3068d4
......@@ -108,14 +108,14 @@ int waitOnDecode(PlayerControl * pc, AudioFormat * af, DecoderControl * dc,
while(decode_pid>0 && dc->start) usleep(10);
if(dc->start || dc->error!=DECODE_ERROR_NOERROR) {
strcpy(pc->erroredFile,pc->file);
strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_FILE;
quitDecode(pc,dc);
return -1;
}
if(initAudio(af)<0) {
strcpy(pc->erroredFile,pc->file);
strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_AUDIO;
quitDecode(pc,dc);
return -1;
......@@ -196,7 +196,7 @@ int decoderInit(PlayerControl * pc, Buffer * cb, AudioFormat *af,
while(1) {
if(dc->start) {
strcpy(dc->file,pc->file);
strncpy(dc->file,pc->file,MAXPATHLEN);
switch(pc->decodeType) {
#ifdef HAVE_MAD
case DECODE_TYPE_MP3:
......@@ -239,7 +239,7 @@ int decoderInit(PlayerControl * pc, Buffer * cb, AudioFormat *af,
/* END OF CHILD */
}
else if(decode_pid<0) {
strcpy(pc->erroredFile,pc->file);
strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_SYSTEM;
return -1;
}
......
......@@ -140,7 +140,7 @@ int playerPlay(FILE * fp, char * utf8file) {
{
struct stat st;
if(stat(rmp2amp(utf8ToFsCharset(utf8file)),&st)<0) {
strcpy(pc->erroredFile,pc->file);
strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_FILENOTFOUND;
return 0;
}
......@@ -160,7 +160,7 @@ int playerPlay(FILE * fp, char * utf8file) {
else if(isWave(utf8file)) pc->decodeType = DECODE_TYPE_AUDIOFILE;
#endif
else {
strcpy(pc->erroredFile,pc->file);
strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_UNKTYPE;
return 0;
}
......
......@@ -25,6 +25,7 @@
#include <sys/shm.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int buffered_before_play;
int BUFFERED_CHUNKS;
......@@ -102,7 +103,7 @@ void initPlayerData() {
playerData_pd->playerControl.queueState = PLAYER_QUEUE_BLANK;
playerData_pd->playerControl.queueLockState = PLAYER_QUEUE_UNLOCKED;
playerData_pd->playerControl.seek = 0;
playerData_pd->playerControl.file[0] = '\0';
memset(playerData_pd->playerControl.file,0,MAXPATHLEN);
playerData_pd->playerControl.crossFade = crossfade;
playerData_pd->playerControl.softwareVolume = 100;
playerData_pd->playerControl.totalPlayTime = 0;
......@@ -112,7 +113,7 @@ void initPlayerData() {
playerData_pd->decoderControl.state = DECODE_STATE_STOP;
playerData_pd->decoderControl.seek = 0;
playerData_pd->decoderControl.error = DECODE_ERROR_NOERROR;
playerData_pd->decoderControl.file[0] = '\0';
memset(playerData_pd->decoderControl.file,0,MAXPATHLEN);
}
PlayerData * getPlayerData() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment