Mercurial > dwindows
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) |