# HG changeset patch # User alex # Date 1052754640 0 # Node ID f3f3e25f8149375b20e9962adbbb45a68cfaeb2b # Parent 00c091706a7347e7cdc8de07f789ecb0a290211b use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :) diff -r 00c091706a73 -r f3f3e25f8149 libmpcodecs/ad_realaud.c --- a/libmpcodecs/ad_realaud.c Mon May 12 14:39:40 2003 +0000 +++ b/libmpcodecs/ad_realaud.c Mon May 12 15:50:40 2003 +0000 @@ -211,8 +211,10 @@ unsigned int result; int len=0; void* prop; - char path[4096]; + char *path; + path = malloc(strlen(REALCODEC_PATH)+strlen(sh->codec->dll)+2); + if (!path) return 0; sprintf(path, REALCODEC_PATH "/%s", sh->codec->dll); /* first try to load linux dlls, if failed and we're supporting win32 dlls, @@ -226,6 +228,7 @@ { mp_msg(MSGT_DECVIDEO, MSGL_ERR, MSGTR_MissingDLLcodec, sh->codec->dll); mp_msg(MSGT_DECVIDEO, MSGL_HINT, "Read the RealAudio section of the DOCS!\n"); + free(path); return 0; } @@ -234,7 +237,9 @@ #else if(raSetDLLAccessPath){ #endif + int i; // used by 'SIPR' + path = realloc(path, strlen(REALCODEC_PATH) + 12); sprintf(path, "DT_Codecs=" REALCODEC_PATH); if(path[strlen(path)-1]!='/'){ path[strlen(path)+1]=0; @@ -243,7 +248,11 @@ path[strlen(path)+1]=0; #ifdef USE_WIN32DLL if (dll_type == 1) + { + for (i=0; i < strlen(path); i++) + if (path[i] == '/') path[i] = '\\'; wraSetDLLAccessPath(path); + } else #endif raSetDLLAccessPath(path); @@ -266,6 +275,7 @@ return 0; } // printf("opencodec ok (result: %x)\n", result); + free(path); /* after this it isn't used anymore */ sh->samplerate=sh->wf->nSamplesPerSec; sh->samplesize=sh->wf->wBitsPerSample/8;