comparison gtk/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 48b91f535f82
children 2c2530f8cbef
comparison
equal deleted inserted replaced
2062:1a93c508bb51 2063:f7c462f27829
12304 * env: Pointer to a DWEnv struct. 12304 * env: Pointer to a DWEnv struct.
12305 */ 12305 */
12306 void dw_environment_query(DWEnv *env) 12306 void dw_environment_query(DWEnv *env)
12307 { 12307 {
12308 struct utsname name; 12308 struct utsname name;
12309 char tempbuf[100]; 12309 char tempbuf[100] = { 0 }, *dot;
12310 int len, z;
12311 12310
12312 uname(&name); 12311 uname(&name);
12313 strcpy(env->osName, name.sysname); 12312 memset(env, '\0', sizeof(DWEnv));
12314 strcpy(tempbuf, name.release); 12313 strncpy(env->osName, name.sysname, sizeof(env->osName)-1);
12315 12314 strncpy(tempbuf, name.release, 99);
12316 env->MajorBuild = env->MinorBuild = 0; 12315
12317 12316 strncpy(env->buildDate, __DATE__, sizeof(env->buildDate)-1);
12318 len = strlen(tempbuf); 12317 strncpy(env->buildTime, __TIME__, sizeof(env->buildTime)-1);
12319
12320 strcpy(env->buildDate, __DATE__);
12321 strcpy(env->buildTime, __TIME__);
12322 env->DWMajorVersion = DW_MAJOR_VERSION; 12318 env->DWMajorVersion = DW_MAJOR_VERSION;
12323 env->DWMinorVersion = DW_MINOR_VERSION; 12319 env->DWMinorVersion = DW_MINOR_VERSION;
12324 #ifdef VER_REV 12320 #ifdef VER_REV
12325 env->DWSubVersion = VER_REV; 12321 env->DWSubVersion = VER_REV;
12326 #else 12322 #else
12327 env->DWSubVersion = DW_SUB_VERSION; 12323 env->DWSubVersion = DW_SUB_VERSION;
12328 #endif 12324 #endif
12329 12325
12330 for(z=1;z<len;z++) 12326 if((dot = strchr(tempbuf, '.')) != NULL)
12331 { 12327 {
12332 if(tempbuf[z] == '.') 12328 *dot = '\0';
12333 { 12329 env->MajorVersion = atoi(tempbuf);
12334 tempbuf[z] = '\0'; 12330 env->MinorVersion = atoi(&dot[1]);
12335 env->MajorVersion = atoi(&tempbuf[z-1]); 12331 return;
12336 env->MinorVersion = atoi(&tempbuf[z+1]);
12337 return;
12338 }
12339 } 12332 }
12340 env->MajorVersion = atoi(tempbuf); 12333 env->MajorVersion = atoi(tempbuf);
12341 env->MinorVersion = 0;
12342 } 12334 }
12343 12335
12344 #if GTK_MAJOR_VERSION < 2 12336 #if GTK_MAJOR_VERSION < 2
12345 /* Internal function to handle the file OK press */ 12337 /* Internal function to handle the file OK press */
12346 static gint _gtk_file_ok(GtkWidget *widget, DWDialog *dwwait) 12338 static gint _gtk_file_ok(GtkWidget *widget, DWDialog *dwwait)