php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #37297 segfault when dumping GtkSelectionData
Submitted: 2006-05-03 18:31 UTC Modified: 2006-07-30 19:17 UTC
From: cweiske@php.net Assigned:
Status: Closed Package: PHP-GTK related
PHP Version: 5.1.3 OS: Linux/Gentoo
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
46 + 20 = ?
Subscribe to this entry?

 
 [2006-05-03 18:31 UTC] cweiske@php.net
Description:
------------
Bug in drag'n'drop:
Drag from "from" button to "to" button.
You will get a segfault.


Reproduce code:
---------------
<?php
$wnd = new GtkWindow();
$wnd->connect_simple('destroy', array('Gtk', 'main_quit'));
$hbox = new GtkHBox();
$wnd->add($hbox);

$btnFrom = new GtkButton('From');
$btnTo   = new GtkButton('To');

$hbox->pack_start($btnFrom);
$hbox->pack_start($btnTo);

$btnFrom->drag_source_set(
    Gdk::BUTTON1_MASK,
    //change to text/plain, and it works
    array(array('text/xml', 0, 1)),
    Gdk::ACTION_COPY | Gdk::ACTION_MOVE
);
$btnFrom->connect('drag-data-get', 'onGetDragData');


$btnTo->drag_dest_set(
    Gtk::DEST_DEFAULT_ALL,
    //change to text/plain, and it works
    array(array('text/xml', 0, 1)),
    Gdk::ACTION_COPY | Gdk::ACTION_MOVE
);

function onGetDragData($widget, $context, $selection, $info, $time) {
    var_dump($selection);
}


$wnd->show_all();
Gtk::main();
?>

Actual result:
--------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 20870)]
0xb7c5b203 in strlen () from /lib/libc.so.6
(gdb) bt
#0  0xb7c5b203 in strlen () from /lib/libc.so.6
#1  0xb75dbcbd in phpg_GtkSelectionData_read_type (object=0x8eb03ec,
    return_value=0xbf8f3cf0) at gen_gtk.c:45552
#2  0xb75ff86b in phpg_get_properties (object=0x8d9bb74)
    at /data/cvs/phpgtk2/php-gtk/main/phpg_support.c:173
#3  0x082c852b in php_var_dump (struc=0x87d1e64, level=1)
    at /data/cvs/php/php-5.1.2/ext/standard/var.c:139
#4  0x082c8736 in zif_var_dump (ht=1, return_value=0x8da9a74,
    return_value_ptr=0x0, this_ptr=0x0, return_value_used=0)
    at /data/cvs/php/php-5.1.2/ext/standard/var.c:192
#5  0x0834a906 in zend_do_fcall_common_helper_SPEC (execute_data=0xbf8f3e20)
    at zend_vm_execute.h:192
#6  0x0834a218 in execute (op_array=0x8d95078) at zend_vm_execute.h:92
#7  0x08328339 in zend_call_function (fci=0xbf8f3f50, fci_cache=0x0)
    at /data/cvs/php/php-5.1.2/Zend/zend_execute_API.c:907
#8  0x08327bae in call_user_function_ex (function_table=0x0, object_pp=0x0,
    function_name=0x0, retval_ptr_ptr=0x0, param_count=0, params=0x0,
    no_separation=0, symbol_table=0x0)
    at /data/cvs/php/php-5.1.2/Zend/zend_execute_API.c:571
#9  0xb7605a8a in phpg_closure_marshal (closure=0x8da9b50, return_value=0x0,
    n_param_values=5, param_values=0xbf8f4210, invocation_hint=0xbf8f40f8,
    marshal_data=0x0) at /data/cvs/phpgtk2/php-gtk/main/phpg_closure.c:124
#10 0xb6fe330e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-07-30 19:17 UTC] andrei@php.net
I fixed this in CVS. Now the selection, target, and type properties of GtkSelectionData are GdkAtom objects and you have to cast them to (string) in order to get the string representation. Let me know if this is going to be too cumbersome. I may adjust GtkSelectionData to have just strings instead of GdkAtom objects for properties.

Also, when running your example the 'data' property is NULL. Is that normal?
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Sat Sep 21 21:01:26 2019 UTC