Mercurial > dwindows
comparison gtk/dw.c @ 2199:8ee74cf778cb
GTK: Increase number buffers to 25 bytes to make sure they can store an
unsigned long value and make sure they are zeroed out. This fixes
warnings from gcc fortify, and improves safety.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 26 Oct 2020 23:05:20 +0000 |
parents | e66bc47eec34 |
children | ae6626a4331f |
comparison
equal
deleted
inserted
replaced
2198:e66bc47eec34 | 2199:8ee74cf778cb |
---|---|
3916 | 3916 |
3917 if (strlen(tempbuf) == 0) | 3917 if (strlen(tempbuf) == 0) |
3918 tmphandle=gtk_menu_item_new(); | 3918 tmphandle=gtk_menu_item_new(); |
3919 else | 3919 else |
3920 { | 3920 { |
3921 char numbuf[11] = {0}; | 3921 char numbuf[25] = {0}; |
3922 | 3922 |
3923 if (check) | 3923 if (check) |
3924 { | 3924 { |
3925 if (accel && accel_group) | 3925 if (accel && accel_group) |
3926 { | 3926 { |
3932 #endif | 3932 #endif |
3933 } | 3933 } |
3934 else | 3934 else |
3935 tmphandle = gtk_check_menu_item_new_with_label(tempbuf); | 3935 tmphandle = gtk_check_menu_item_new_with_label(tempbuf); |
3936 gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(tmphandle), TRUE); | 3936 gtk_check_menu_item_set_show_toggle(GTK_CHECK_MENU_ITEM(tmphandle), TRUE); |
3937 snprintf(numbuf, 10, "%lu", id); | 3937 snprintf(numbuf, 24, "%lu", id); |
3938 gtk_object_set_data(GTK_OBJECT(menu), numbuf, (gpointer)tmphandle); | 3938 gtk_object_set_data(GTK_OBJECT(menu), numbuf, (gpointer)tmphandle); |
3939 } | 3939 } |
3940 else | 3940 else |
3941 { | 3941 { |
3942 if (accel && accel_group) | 3942 if (accel && accel_group) |
3948 gtk_widget_add_accelerator(tmphandle, "activate", accel_group, tmp_key, GDK_MOD1_MASK, 0); | 3948 gtk_widget_add_accelerator(tmphandle, "activate", accel_group, tmp_key, GDK_MOD1_MASK, 0); |
3949 #endif | 3949 #endif |
3950 } | 3950 } |
3951 else | 3951 else |
3952 tmphandle=gtk_menu_item_new_with_label(tempbuf); | 3952 tmphandle=gtk_menu_item_new_with_label(tempbuf); |
3953 snprintf(numbuf, 10, "%lu", id); | 3953 snprintf(numbuf, 24, "%lu", id); |
3954 gtk_object_set_data(GTK_OBJECT(menu), numbuf, (gpointer)tmphandle); | 3954 gtk_object_set_data(GTK_OBJECT(menu), numbuf, (gpointer)tmphandle); |
3955 } | 3955 } |
3956 } | 3956 } |
3957 | 3957 |
3958 gtk_widget_show(tmphandle); | 3958 gtk_widget_show(tmphandle); |
4024 * check: TRUE for checked FALSE for not checked. | 4024 * check: TRUE for checked FALSE for not checked. |
4025 * deprecated: use dw_menu_item_set_state() | 4025 * deprecated: use dw_menu_item_set_state() |
4026 */ | 4026 */ |
4027 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check) | 4027 void dw_menu_item_set_check(HMENUI menu, unsigned long id, int check) |
4028 { | 4028 { |
4029 char numbuf[11] = {0}; | 4029 char numbuf[25] = {0}; |
4030 GtkWidget *tmphandle; | 4030 GtkWidget *tmphandle; |
4031 int _locked_by_me = FALSE; | 4031 int _locked_by_me = FALSE; |
4032 | 4032 |
4033 if(!menu) | 4033 if(!menu) |
4034 return; | 4034 return; |
4035 | 4035 |
4036 DW_MUTEX_LOCK; | 4036 DW_MUTEX_LOCK; |
4037 snprintf(numbuf, 10, "%lu", id); | 4037 snprintf(numbuf, 24, "%lu", id); |
4038 tmphandle = _find_submenu_id(menu, numbuf); | 4038 tmphandle = _find_submenu_id(menu, numbuf); |
4039 | 4039 |
4040 if(tmphandle) | 4040 if(tmphandle) |
4041 { | 4041 { |
4042 _dw_ignore_click = 1; | 4042 _dw_ignore_click = 1; |
4054 * id: Menuitem id. | 4054 * id: Menuitem id. |
4055 * state: TRUE for checked FALSE for not checked. | 4055 * state: TRUE for checked FALSE for not checked. |
4056 */ | 4056 */ |
4057 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state) | 4057 void dw_menu_item_set_state(HMENUI menu, unsigned long id, unsigned long state) |
4058 { | 4058 { |
4059 char numbuf[11] = {0}; | 4059 char numbuf[25] = {0}; |
4060 GtkWidget *tmphandle; | 4060 GtkWidget *tmphandle; |
4061 int check; | 4061 int check; |
4062 int _locked_by_me = FALSE; | 4062 int _locked_by_me = FALSE; |
4063 | 4063 |
4064 if(!menu) | 4064 if(!menu) |
4065 return; | 4065 return; |
4066 | 4066 |
4067 DW_MUTEX_LOCK; | 4067 DW_MUTEX_LOCK; |
4068 snprintf(numbuf, 10, "%lu", id); | 4068 snprintf(numbuf, 24, "%lu", id); |
4069 tmphandle = _find_submenu_id(menu, numbuf); | 4069 tmphandle = _find_submenu_id(menu, numbuf); |
4070 | 4070 |
4071 if ( (state & DW_MIS_CHECKED) || (state & DW_MIS_UNCHECKED) ) | 4071 if ( (state & DW_MIS_CHECKED) || (state & DW_MIS_UNCHECKED) ) |
4072 { | 4072 { |
4073 if ( state & DW_MIS_CHECKED ) | 4073 if ( state & DW_MIS_CHECKED ) |
4106 * Returns: | 4106 * Returns: |
4107 * DW_ERROR_NONE (0) on success or DW_ERROR_UNKNOWN on failure. | 4107 * DW_ERROR_NONE (0) on success or DW_ERROR_UNKNOWN on failure. |
4108 */ | 4108 */ |
4109 int API dw_menu_delete_item(HMENUI menu, unsigned long id) | 4109 int API dw_menu_delete_item(HMENUI menu, unsigned long id) |
4110 { | 4110 { |
4111 char numbuf[11]; | 4111 char numbuf[25] = {0}; |
4112 GtkWidget *tmphandle; | 4112 GtkWidget *tmphandle; |
4113 int _locked_by_me = FALSE; | 4113 int _locked_by_me = FALSE; |
4114 int ret = DW_ERROR_UNKNOWN; | 4114 int ret = DW_ERROR_UNKNOWN; |
4115 | 4115 |
4116 if(!menu || !id) | 4116 if(!menu || !id) |
4117 return ret; | 4117 return ret; |
4118 | 4118 |
4119 DW_MUTEX_LOCK; | 4119 DW_MUTEX_LOCK; |
4120 snprintf(numbuf, 10, "%lu", id); | 4120 snprintf(numbuf, 24, "%lu", id); |
4121 tmphandle = _find_submenu_id(menu, numbuf); | 4121 tmphandle = _find_submenu_id(menu, numbuf); |
4122 | 4122 |
4123 if(tmphandle) | 4123 if(tmphandle) |
4124 { | 4124 { |
4125 gtk_widget_destroy(tmphandle); | 4125 gtk_widget_destroy(tmphandle); |
4187 | 4187 |
4188 DW_MUTEX_LOCK; | 4188 DW_MUTEX_LOCK; |
4189 #ifdef GDK_WINDOWING_X11 | 4189 #ifdef GDK_WINDOWING_X11 |
4190 # if GTK_CHECK_VERSION(2,8,0) | 4190 # if GTK_CHECK_VERSION(2,8,0) |
4191 gdk_display_warp_pointer( gdk_display_get_default(), gdk_screen_get_default(), x, y ); | 4191 gdk_display_warp_pointer( gdk_display_get_default(), gdk_screen_get_default(), x, y ); |
4192 // gdk_display_warp_pointer( GDK_DISPLAY(), gdk_screen_get_default(), x, y ); | |
4193 # else | 4192 # else |
4194 XWarpPointer(GDK_DISPLAY(), None, GDK_ROOT_WINDOW(), 0,0,0,0, x, y); | 4193 XWarpPointer(GDK_DISPLAY(), None, GDK_ROOT_WINDOW(), 0,0,0,0, x, y); |
4195 # endif | 4194 # endif |
4196 #endif | 4195 #endif |
4197 DW_MUTEX_UNLOCK; | 4196 DW_MUTEX_UNLOCK; |
7336 * Internal representation of dw_container_set_item() extracted so we can pass | 7335 * Internal representation of dw_container_set_item() extracted so we can pass |
7337 * two data pointers; icon and text for dw_filesystem_set_item(). | 7336 * two data pointers; icon and text for dw_filesystem_set_item(). |
7338 */ | 7337 */ |
7339 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data, const char *text) | 7338 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data, const char *text) |
7340 { | 7339 { |
7341 char numbuf[11] = {0}, textbuffer[101] = {0}; | 7340 char numbuf[25] = {0}, textbuffer[101] = {0}; |
7342 int flag = 0; | 7341 int flag = 0; |
7343 GtkWidget *clist; | 7342 GtkWidget *clist; |
7344 int _locked_by_me = FALSE; | 7343 int _locked_by_me = FALSE; |
7345 | 7344 |
7346 DW_MUTEX_LOCK; | 7345 DW_MUTEX_LOCK; |
7349 { | 7348 { |
7350 DW_MUTEX_UNLOCK; | 7349 DW_MUTEX_UNLOCK; |
7351 return; | 7350 return; |
7352 } | 7351 } |
7353 | 7352 |
7354 snprintf(numbuf, 10, "%d", column); | 7353 snprintf(numbuf, 24, "%d", column); |
7355 flag = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), numbuf)); | 7354 flag = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), numbuf)); |
7356 if(pointer) | 7355 if(pointer) |
7357 { | 7356 { |
7358 row += GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), "_dw_insertpos")); | 7357 row += GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), "_dw_insertpos")); |
7359 } | 7358 } |
7522 * handle: Handle to the container window (widget). | 7521 * handle: Handle to the container window (widget). |
7523 * column: Zero based column. | 7522 * column: Zero based column. |
7524 */ | 7523 */ |
7525 int dw_container_get_column_type(HWND handle, int column) | 7524 int dw_container_get_column_type(HWND handle, int column) |
7526 { | 7525 { |
7527 char numbuf[11] = {0}; | 7526 char numbuf[25] = {0}; |
7528 int flag, rc; | 7527 int flag, rc; |
7529 GtkWidget *clist; | 7528 GtkWidget *clist; |
7530 int _locked_by_me = FALSE; | 7529 int _locked_by_me = FALSE; |
7531 | 7530 |
7532 DW_MUTEX_LOCK; | 7531 DW_MUTEX_LOCK; |
7535 { | 7534 { |
7536 DW_MUTEX_UNLOCK; | 7535 DW_MUTEX_UNLOCK; |
7537 return 0; | 7536 return 0; |
7538 } | 7537 } |
7539 | 7538 |
7540 snprintf(numbuf, 10, "%d", column); | 7539 snprintf(numbuf, 24, "%d", column); |
7541 flag = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), numbuf)); | 7540 flag = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), numbuf)); |
7542 | 7541 |
7543 if(flag & DW_CFA_BITMAPORICON) | 7542 if(flag & DW_CFA_BITMAPORICON) |
7544 rc = DW_CFA_BITMAPORICON; | 7543 rc = DW_CFA_BITMAPORICON; |
7545 else if(flag & DW_CFA_STRING) | 7544 else if(flag & DW_CFA_STRING) |