X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cde%2Fprograms%2Fdtlogin%2Fsession.c;h=cf6ce6d1819c350e5e6742940bd36c94b2dfe6ce;hb=ee4c38da0ac91a0daf782706bf16faee1c409880;hp=0693e45cd31e925c2eb408ad94d8392563f70c49;hpb=b881408be0e09ed01863663daf11d99a930ef8bf;p=oweals%2Fcde.git diff --git a/cde/programs/dtlogin/session.c b/cde/programs/dtlogin/session.c index 0693e45c..cf6ce6d1 100644 --- a/cde/programs/dtlogin/session.c +++ b/cde/programs/dtlogin/session.c @@ -644,8 +644,6 @@ int LoadXloginResources( struct display *d ) { char cmd[1024]; - char *language=""; - char *lang_key=""; char *authority=""; char *auth_key=""; char *resources = NULL; @@ -675,27 +673,6 @@ LoadXloginResources( struct display *d ) auth_key = "XAUTHORITY="; } - if (d->language && strlen(d->language) > 0 ) { - language = strdup(d->language); - lang_key = "-D"; - } - - /* - * replace any "-" or "." in the language name with "_". The C - * preprocessor used by xrdb does not accept "-" or "." in a name. - */ - - while ( (p = strchr(language, '-')) != NULL ) { - *p = '_'; - } - - while ( (p = strchr(language, '.')) != NULL ) { - *p = '_'; - } - - free(language); - - Debug("LoadXloginResources - loading resource db from %s\n", resources); if((XresourceDB = XrmGetFileDatabase(resources)) == NULL) Debug("LoadXloginResources - Loading resource db from %s failed\n", @@ -762,7 +739,7 @@ LoadAltDtsResources(struct display *d) if ( XrmGetResource(XresourceDB, "Dtlogin*altDts", "Dtlogin*AltDts", &rmtype, &rmvalue ) ) { - strcpy(tempbuf,rmvalue.addr); + snprintf(tempbuf, sizeof(tempbuf), "%s", rmvalue.addr); i = atoi(tempbuf); } @@ -790,18 +767,15 @@ LoadAltDtsResources(struct display *d) Debug("\t %s.\n", strerror(errno)); } else - strcpy(dirname[j], resources); + snprintf(dirname[j], sizeof(dirname[j]), "%s", resources); } else { - strcpy(dirname[j],resources); + snprintf(dirname[j], sizeof(dirname[j]), "%s", resources); Debug("LoadAltDtsResources- found resource dir %s\n", dirname[j]); } - if (resources) - { - free (resources); - resources = NULL; - } + free (resources); + resources = NULL; } @@ -833,13 +807,13 @@ LoadAltDtsResources(struct display *d) } if (file_count == 0) { - file_list = malloc (list_incr * sizeof(char **)); + file_list = malloc (list_incr * sizeof(char *)); num_allocated += list_incr; } if (file_count + 1 > num_allocated) { num_allocated += list_incr; file_list = realloc (file_list, - num_allocated * sizeof(char **)); + num_allocated * sizeof(char *)); } file_list[file_count] = strdup (res_file); file_count++; @@ -864,9 +838,9 @@ LoadAltDtsResources(struct display *d) * remove the trailing spaces */ if(strchr(rmvalue.addr,' ')) - strcpy(tempbuf, strtok(rmvalue.addr," ")); + snprintf(tempbuf, sizeof(tempbuf), "%s", strtok(rmvalue.addr," ")); else - strcpy(tempbuf, rmvalue.addr); + snprintf(tempbuf, sizeof(tempbuf), "%s", rmvalue.addr); if ((strcmp(tempbuf, "True") == 0) || (strcmp(tempbuf, "TRUE") == 0)) { @@ -1943,6 +1917,8 @@ RunGreeter( struct display *d, struct greet_info *greet, char *path; struct greet_state state = {}; int notify_dt; + int dupfp = -1; + int dupfp2 = -1; #ifdef __PASSWD_ETC # ifndef U_NAMELEN @@ -2086,7 +2062,7 @@ RunGreeter( struct display *d, struct greet_info *greet, if ( d->langList && strlen(d->langList) > 0 ) env = setEnv(env, LANGLIST, d->langList); #if !defined (ENABLE_DYNAMIC_LANGLIST) - else if (languageList && strlen(languageList) > 0 ) + else if (strlen(languageList) > 0 ) env = setEnv(env, LANGLIST, languageList); #endif /* ENABLE_DYNAMIC_LANGLIST */ @@ -2126,7 +2102,8 @@ RunGreeter( struct display *d, struct greet_info *greet, * Writing to file descriptor 1 goes to response pipe instead. */ close(1); - if(-1 == dup(response[1])) { + dupfp = dup(response[1]); + if(-1 == dupfp) { perror(strerror(errno)); } close(response[0]); @@ -2136,7 +2113,8 @@ RunGreeter( struct display *d, struct greet_info *greet, * Reading from file descriptor 0 reads from request pipe instead. */ close(0); - if(-1 == dup(request[0])) { + dupfp2 = dup(request[0]); + if(-1 == dupfp2) { perror(strerror(errno)); } close(request[0]); @@ -2148,7 +2126,7 @@ RunGreeter( struct display *d, struct greet_info *greet, * figure out path to dtgreet... */ - strcpy(msg, progName); + snprintf(msg, sizeof(msg), "%s", progName); if ((p = (char *) strrchr(msg, '/')) == NULL) strcpy(msg,"./");