Update packet forwarding code
authorSung-jae Park <nicesj.park@samsung.com>
Mon, 24 Nov 2014 07:49:29 +0000 (16:49 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Mon, 24 Nov 2014 07:49:29 +0000 (16:49 +0900)
To forward a packet, refcnt should be increased to prevent from unexpected destruction.

[model] Redwood,Kiran,B3(Wearable)
[binary_type] AP
[customer] Docomo/Orange/ATT/Open
[issue#] N/A
[problem]
[cause]
[solution]
[team] HomeTF
[request]
[horizontal_expansion]

Change-Id: Ia40b7576e973ed08a15f5b15565d0d9a7ae9e70a

src/server.c

index 50c8e13..39a3a06 100644 (file)
@@ -2106,6 +2106,7 @@ static struct packet *client_dbox_mouse_set(pid_t pid, int handle, const struct
            DbgPrint("Direct input is enabled(set for %s:%d)\n", id, packet_fd(packet));
            slave = package_slave(pkg);
            if (slave) {
+               packet_ref((struct packet *)packet);
                ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
            } else {
                ErrPrint("Unable to find a slave for %s\n", pkgname);
@@ -2179,6 +2180,7 @@ static struct packet *client_dbox_mouse_unset(pid_t pid, int handle, const struc
            DbgPrint("Direct input is enabled(unset) for %s\n", id);
            slave = package_slave(pkg);
            if (slave) {
+               packet_ref((struct packet *)packet);
                ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
            } else {
                ErrPrint("Unable to find a slave for %s\n", pkgname);
@@ -2252,6 +2254,7 @@ static struct packet *client_gbar_mouse_set(pid_t pid, int handle, const struct
            DbgPrint("Direct input is enabled(set for %s:%d)\n", id, packet_fd(packet));
            slave = package_slave(pkg);
            if (slave) {
+               packet_ref((struct packet *)packet);
                ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
            } else {
                ErrPrint("Unable to find a slave for %s\n", pkgname);
@@ -2766,6 +2769,7 @@ static struct packet *client_gbar_mouse_unset(pid_t pid, int handle, const struc
            DbgPrint("Direct input is enabled(unset) for %s\n", id);
            slave = package_slave(pkg);
            if (slave) {
+               packet_ref((struct packet *)packet);
                ret = slave_rpc_request_only(slave, pkgname, (struct packet *)packet, 0);
            } else {
                ErrPrint("Unable to find a slave for %s\n", pkgname);