1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

dtsession: fix VU#497553

This commit is contained in:
Jon Trulson 2012-05-26 19:29:50 -06:00
parent b4f3efb692
commit 9526740ddd
3 changed files with 47 additions and 8 deletions

View file

@ -2215,6 +2215,7 @@ InitializeSpecificSession (
{ {
char *session_dir = (char *) XtMalloc(MAXPATHLEN); char *session_dir = (char *) XtMalloc(MAXPATHLEN);
char *alt_dir = (char *) XtMalloc(MAXPATHLEN); char *alt_dir = (char *) XtMalloc(MAXPATHLEN);
int len;
struct stat buf; struct stat buf;
if (!InternSessionDir (session_option, disp)) if (!InternSessionDir (session_option, disp))
@ -2283,6 +2284,16 @@ InitializeSpecificSession (
if ((home = getenv ("HOME")) == 0) if ((home = getenv ("HOME")) == 0)
home = ""; home = "";
/* JET - VU#497553 */
len = strlen(home) +
strlen(DtPERSONAL_CONFIG_DIRECTORY) +
strlen(DtSM_SESSION_DIRECTORY) +
strlen(SM_HOME_DIRECTORY);
if (len > MAXPATHLEN)
alt_dir = XtRealloc(alt_dir, len + 1);
(void) sprintf (alt_dir, "%s/%s/%s/%s", (void) sprintf (alt_dir, "%s/%s/%s/%s",
home, home,
DtPERSONAL_CONFIG_DIRECTORY, DtPERSONAL_CONFIG_DIRECTORY,
@ -2325,6 +2336,16 @@ InitializeSpecificSession (
*/ */
if ((home = getenv ("HOME")) == 0) if ((home = getenv ("HOME")) == 0)
home = ""; home = "";
/* JET - VU#497553 */
len = strlen(home) +
strlen(DtPERSONAL_CONFIG_DIRECTORY) +
strlen(DtSM_SESSION_DIRECTORY) +
strlen(SM_HOME_DIRECTORY);
if (len > MAXPATHLEN)
alt_dir = XtRealloc(alt_dir, len + 1);
(void) sprintf (alt_dir, "%s/%s/%s/%s", (void) sprintf (alt_dir, "%s/%s/%s/%s",
home, home,
DtPERSONAL_CONFIG_DIRECTORY, DtPERSONAL_CONFIG_DIRECTORY,

View file

@ -2116,6 +2116,7 @@ PostXSMPFailureDialog (
Dimension width, height; Dimension width, height;
Position x, y; Position x, y;
XEvent next; XEvent next;
int len;
pch1 = strdup ((char *) GETMESSAGE(40, 1, pch1 = strdup ((char *) GETMESSAGE(40, 1,
"A session cannot be started because of the\nfollowing error:")); "A session cannot be started because of the\nfollowing error:"));
@ -2171,13 +2172,26 @@ PostXSMPFailureDialog (
error_file = XtMalloc(MAXPATHLEN+1); error_file = XtMalloc(MAXPATHLEN+1);
strcpy (error_file, ""); strcpy (error_file, "");
if (check_errorlog) {
/* JET - VU#497553 */
if (check_errorlog)
{
char *home; char *home;
if (home = getenv ("HOME")) if (home = getenv ("HOME"))
sprintf (error_file, "%s/%s/%s", home, DtPERSONAL_CONFIG_DIRECTORY, {
len = strlen(home) +
strlen(DtPERSONAL_CONFIG_DIRECTORY) +
strlen(DtERRORLOG_FILE);
if (len > MAXPATHLEN)
error_file = XtRealloc(error_file, len + 1);
sprintf (error_file, "%s/%s/%s", home,
DtPERSONAL_CONFIG_DIRECTORY,
DtERRORLOG_FILE); DtERRORLOG_FILE);
} }
}
pch5 = XtMalloc (strlen (pch1) + strlen (pch2) + strlen (pch3) + strlen (pch4) + pch5 = XtMalloc (strlen (pch1) + strlen (pch2) + strlen (pch3) + strlen (pch4) +
strlen (error_file) + 15); strlen (error_file) + 15);

View file

@ -91,13 +91,17 @@ void
SmXdefMerge(Display *display) SmXdefMerge(Display *display)
{ {
char *xdefaults; char *xdefaults;
char *home;
/* /*
* Load .Xdefaults * Load .Xdefaults
*/ */
if( (xdefaults = (char *)malloc(strlen(getenv("HOME"))+12)) != NULL) if ((home = getenv("HOME")) == NULL)
home = "";
if( (xdefaults = (char *)malloc(strlen(home)+12)) != NULL)
{ {
sprintf(xdefaults,"%s/%s",getenv("HOME"),".Xdefaults"); sprintf(xdefaults,"%s/%s",home,".Xdefaults");
if(access(xdefaults,R_OK) == 0) if(access(xdefaults,R_OK) == 0)
{ {
FILE *fp; FILE *fp;