aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2012-03-23 10:15:39 -0500
committerDan Williams <dcbw@redhat.com>2012-03-23 10:58:59 -0500
commitd41d62f57743580f306ac2703561d1f17b45145e (patch)
tree272bb573d88339c77b267ee68d9bd9dd1a536dcb
parentac92ac74984a75ca4e125c0eabf8acba048a2b35 (diff)
serial: fix crash when sending some commands to a closed port (lp:963102)
If the command we're sending doesn't have a callback, don't try to call NULL. Triggered if the port got closed (because the modem crashed, or refcounting errors or whatever) with some code like this: mm_at_serial_port_queue_command (MM_AT_SERIAL_PORT (port), "+CREG=0", 3, NULL, NULL);
-rw-r--r--src/mm-serial-port.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mm-serial-port.c b/src/mm-serial-port.c
index 33660bf2..3bc12d26 100644
--- a/src/mm-serial-port.c
+++ b/src/mm-serial-port.c
@@ -1102,7 +1102,8 @@ internal_queue_command (MMSerialPort *self,
GError *error = g_error_new_literal (MM_SERIAL_ERROR,
MM_SERIAL_ERROR_SEND_FAILED,
"Sending command failed: device is not enabled");
- callback (self, NULL, error, user_data);
+ if (callback)
+ callback (self, NULL, error, user_data);
g_error_free (error);
return;
}