summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivia Nikolaidou <vivia@ahiru.eu>2017-11-09 00:16:21 +0200
committerVivia Nikolaidou <vivia@ahiru.eu>2017-11-09 00:19:42 +0200
commitbae9427dc1abd29f03a524e4f30667876682600e (patch)
treee22935841f8a573a7c917001faa0dfd1db3f99eb
parentf78be9d6988b1c3d1482a981c94a545e79645e43 (diff)
decklink: Don't crash when getting hw serial number doesn't return OK
If the return value isn't OK, it means we might be getting data that points to an invalid memory address. That shouldn't make us crash.
-rw-r--r--sys/decklink/gstdecklink.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp
index 58af0c607..85498c9b1 100644
--- a/sys/decklink/gstdecklink.cpp
+++ b/sys/decklink/gstdecklink.cpp
@@ -1239,11 +1239,13 @@ init_devices (gpointer data)
devices[i].input.
config->GetString (bmdDeckLinkConfigDeviceInformationSerialNumber,
(COMSTR_T *) & serial_number);
- CONVERT_COM_STRING (serial_number);
- devices[i].output.hw_serial_number = g_strdup (serial_number);
- devices[i].input.hw_serial_number = g_strdup (serial_number);
- GST_DEBUG ("device %d has serial number %s", i, serial_number);
- FREE_COM_STRING (serial_number);
+ if (ret == S_OK) {
+ CONVERT_COM_STRING (serial_number);
+ devices[i].output.hw_serial_number = g_strdup (serial_number);
+ devices[i].input.hw_serial_number = g_strdup (serial_number);
+ GST_DEBUG ("device %d has serial number %s", i, serial_number);
+ FREE_COM_STRING (serial_number);
+ }
}
ret = decklink->QueryInterface (IID_IDeckLinkAttributes,