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);
This commit is contained in:
Dan Williams
2012-03-23 10:58:59 -05:00
parent ac92ac7498
commit d41d62f577
+2 -1
View File
@@ -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;
}