From 42f8e012b74007c3c889e1bbfcc2c4d1e4be3ebc Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Thu, 30 Nov 2017 22:47:12 +0100 Subject: [PATCH] Don't accept a NULL pointer as parameter Immediately return an error instead of trying to pass the NULL pointer to the underlying open system call. --- src/serial_posix.c | 4 ++-- src/serial_win32.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/serial_posix.c b/src/serial_posix.c index 7b79ecc..fecc018 100644 --- a/src/serial_posix.c +++ b/src/serial_posix.c @@ -181,10 +181,10 @@ dc_serial_open (dc_iostream_t **out, dc_context_t *context, const char *name) dc_status_t status = DC_STATUS_SUCCESS; dc_serial_t *device = NULL; - if (out == NULL) + if (out == NULL || name == NULL) return DC_STATUS_INVALIDARGS; - INFO (context, "Open: name=%s", name ? name : ""); + INFO (context, "Open: name=%s", name); // Allocate memory. device = (dc_serial_t *) dc_iostream_allocate (context, &dc_serial_vtable); diff --git a/src/serial_win32.c b/src/serial_win32.c index fb9940b..4454a74 100644 --- a/src/serial_win32.c +++ b/src/serial_win32.c @@ -161,15 +161,15 @@ dc_serial_open (dc_iostream_t **out, dc_context_t *context, const char *name) dc_status_t status = DC_STATUS_SUCCESS; dc_serial_t *device = NULL; - if (out == NULL) + if (out == NULL || name == NULL) return DC_STATUS_INVALIDARGS; - INFO (context, "Open: name=%s", name ? name : ""); + INFO (context, "Open: name=%s", name); // Build the device name. const char *devname = NULL; char buffer[MAX_PATH] = "\\\\.\\"; - if (name && strncmp (name, buffer, 4) != 0) { + if (strncmp (name, buffer, 4) != 0) { size_t length = strlen (name) + 1; if (length + 4 > sizeof (buffer)) return DC_STATUS_NOMEMORY;