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
This commit is contained in:
Warren Dukes 2004-02-25 18:46:41 +00:00
parent ca3068d411
commit e4f265b2fc
3 changed files with 9 additions and 8 deletions

View File

@ -108,14 +108,14 @@ int waitOnDecode(PlayerControl * pc, AudioFormat * af, DecoderControl * dc,
while(decode_pid>0 && dc->start) usleep(10); while(decode_pid>0 && dc->start) usleep(10);
if(dc->start || dc->error!=DECODE_ERROR_NOERROR) { if(dc->start || dc->error!=DECODE_ERROR_NOERROR) {
strcpy(pc->erroredFile,pc->file); strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_FILE; pc->error = PLAYER_ERROR_FILE;
quitDecode(pc,dc); quitDecode(pc,dc);
return -1; return -1;
} }
if(initAudio(af)<0) { if(initAudio(af)<0) {
strcpy(pc->erroredFile,pc->file); strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_AUDIO; pc->error = PLAYER_ERROR_AUDIO;
quitDecode(pc,dc); quitDecode(pc,dc);
return -1; return -1;
@ -196,7 +196,7 @@ int decoderInit(PlayerControl * pc, Buffer * cb, AudioFormat *af,
while(1) { while(1) {
if(dc->start) { if(dc->start) {
strcpy(dc->file,pc->file); strncpy(dc->file,pc->file,MAXPATHLEN);
switch(pc->decodeType) { switch(pc->decodeType) {
#ifdef HAVE_MAD #ifdef HAVE_MAD
case DECODE_TYPE_MP3: case DECODE_TYPE_MP3:
@ -239,7 +239,7 @@ int decoderInit(PlayerControl * pc, Buffer * cb, AudioFormat *af,
/* END OF CHILD */ /* END OF CHILD */
} }
else if(decode_pid<0) { else if(decode_pid<0) {
strcpy(pc->erroredFile,pc->file); strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_SYSTEM; pc->error = PLAYER_ERROR_SYSTEM;
return -1; return -1;
} }

View File

@ -140,7 +140,7 @@ int playerPlay(FILE * fp, char * utf8file) {
{ {
struct stat st; struct stat st;
if(stat(rmp2amp(utf8ToFsCharset(utf8file)),&st)<0) { if(stat(rmp2amp(utf8ToFsCharset(utf8file)),&st)<0) {
strcpy(pc->erroredFile,pc->file); strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_FILENOTFOUND; pc->error = PLAYER_ERROR_FILENOTFOUND;
return 0; return 0;
} }
@ -160,7 +160,7 @@ int playerPlay(FILE * fp, char * utf8file) {
else if(isWave(utf8file)) pc->decodeType = DECODE_TYPE_AUDIOFILE; else if(isWave(utf8file)) pc->decodeType = DECODE_TYPE_AUDIOFILE;
#endif #endif
else { else {
strcpy(pc->erroredFile,pc->file); strncpy(pc->erroredFile,pc->file,MAXPATHLEN);
pc->error = PLAYER_ERROR_UNKTYPE; pc->error = PLAYER_ERROR_UNKTYPE;
return 0; return 0;
} }

View File

@ -25,6 +25,7 @@
#include <sys/shm.h> #include <sys/shm.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
int buffered_before_play; int buffered_before_play;
int BUFFERED_CHUNKS; int BUFFERED_CHUNKS;
@ -102,7 +103,7 @@ void initPlayerData() {
playerData_pd->playerControl.queueState = PLAYER_QUEUE_BLANK; playerData_pd->playerControl.queueState = PLAYER_QUEUE_BLANK;
playerData_pd->playerControl.queueLockState = PLAYER_QUEUE_UNLOCKED; playerData_pd->playerControl.queueLockState = PLAYER_QUEUE_UNLOCKED;
playerData_pd->playerControl.seek = 0; 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.crossFade = crossfade;
playerData_pd->playerControl.softwareVolume = 100; playerData_pd->playerControl.softwareVolume = 100;
playerData_pd->playerControl.totalPlayTime = 0; playerData_pd->playerControl.totalPlayTime = 0;
@ -112,7 +113,7 @@ void initPlayerData() {
playerData_pd->decoderControl.state = DECODE_STATE_STOP; playerData_pd->decoderControl.state = DECODE_STATE_STOP;
playerData_pd->decoderControl.seek = 0; playerData_pd->decoderControl.seek = 0;
playerData_pd->decoderControl.error = DECODE_ERROR_NOERROR; playerData_pd->decoderControl.error = DECODE_ERROR_NOERROR;
playerData_pd->decoderControl.file[0] = '\0'; memset(playerData_pd->decoderControl.file,0,MAXPATHLEN);
} }
PlayerData * getPlayerData() { PlayerData * getPlayerData() {