comparison gtk3/dw.c @ 2063:f7c462f27829

GTK: Update ancient unsafe code in dw_environment_query() on Unix.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 20 Apr 2020 19:22:37 +0000
parents 9c400365f269
children 2c2530f8cbef
comparison
equal deleted inserted replaced
2062:1a93c508bb51 2063:f7c462f27829
11008 * env: Pointer to a DWEnv struct. 11008 * env: Pointer to a DWEnv struct.
11009 */ 11009 */
11010 void dw_environment_query(DWEnv *env) 11010 void dw_environment_query(DWEnv *env)
11011 { 11011 {
11012 struct utsname name; 11012 struct utsname name;
11013 char tempbuf[100]; 11013 char tempbuf[100] = { 0 }, *dot;
11014 int len, z;
11015 11014
11016 uname(&name); 11015 uname(&name);
11017 strcpy(env->osName, name.sysname); 11016 memset(env, '\0', sizeof(DWEnv));
11018 strcpy(tempbuf, name.release); 11017 strncpy(env->osName, name.sysname, sizeof(env->osName)-1);
11019 11018 strncpy(tempbuf, name.release, 99);
11020 env->MajorBuild = env->MinorBuild = 0; 11019
11021 11020 strncpy(env->buildDate, __DATE__, sizeof(env->buildDate)-1);
11022 len = strlen(tempbuf); 11021 strncpy(env->buildTime, __TIME__, sizeof(env->buildTime)-1);
11023
11024 strcpy(env->buildDate, __DATE__);
11025 strcpy(env->buildTime, __TIME__);
11026 env->DWMajorVersion = DW_MAJOR_VERSION; 11022 env->DWMajorVersion = DW_MAJOR_VERSION;
11027 env->DWMinorVersion = DW_MINOR_VERSION; 11023 env->DWMinorVersion = DW_MINOR_VERSION;
11028 #ifdef VER_REV 11024 #ifdef VER_REV
11029 env->DWSubVersion = VER_REV; 11025 env->DWSubVersion = VER_REV;
11030 #else 11026 #else
11031 env->DWSubVersion = DW_SUB_VERSION; 11027 env->DWSubVersion = DW_SUB_VERSION;
11032 #endif 11028 #endif
11033 11029
11034 for(z=1;z<len;z++) 11030 if((dot = strchr(tempbuf, '.')) != NULL)
11035 { 11031 {
11036 if(tempbuf[z] == '.') 11032 *dot = '\0';
11037 { 11033 env->MajorVersion = atoi(tempbuf);
11038 tempbuf[z] = '\0'; 11034 env->MinorVersion = atoi(&dot[1]);
11039 env->MajorVersion = atoi(&tempbuf[z-1]); 11035 return;
11040 env->MinorVersion = atoi(&tempbuf[z+1]);
11041 return;
11042 }
11043 } 11036 }
11044 env->MajorVersion = atoi(tempbuf); 11037 env->MajorVersion = atoi(tempbuf);
11045 env->MinorVersion = 0;
11046 } 11038 }
11047 11039
11048 /* 11040 /*
11049 * Opens a file dialog and queries user selection. 11041 * Opens a file dialog and queries user selection.
11050 * Parameters: 11042 * Parameters: