mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
* exec.c (make_tempdir) [_WIN32]: Modified to properly handle
arbitrarily long temporary directory paths.
This commit is contained in:
parent
05a2a2f39a
commit
b9c2f44336
2 changed files with 17 additions and 7 deletions
19
g10/exec.c
19
g10/exec.c
|
@ -129,16 +129,21 @@ static int make_tempdir(struct exec_info *info)
|
|||
if(tmp==NULL)
|
||||
{
|
||||
#if defined (_WIN32)
|
||||
int err;
|
||||
int tmp_siz;
|
||||
int len=0;
|
||||
|
||||
tmp=xmalloc(MAX_PATH+1);
|
||||
err=GetTempPath(MAX_PATH+1,tmp);
|
||||
if(err==0 || err>MAX_PATH+1)
|
||||
strcpy(tmp,"c:\\windows\\temp");
|
||||
/* Poll temp path length */
|
||||
tmp_siz=GetTempPath(0,NULL);
|
||||
if(tmp_siz)
|
||||
{
|
||||
tmp=xmalloc(tmp_siz);
|
||||
len=GetTempPath(tmp_siz,tmp);
|
||||
}
|
||||
|
||||
if(len==0)
|
||||
tmp=xstrdup("c:\\windows\\temp");
|
||||
else
|
||||
{
|
||||
int len=strlen(tmp);
|
||||
|
||||
/* GetTempPath may return with \ on the end */
|
||||
while(len>0 && tmp[len-1]=='\\')
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue