]> sigrok.org Git - libserialport.git/commitdiff
Additional argument checking for config functions.
authorMartin Ling <redacted>
Mon, 18 Nov 2013 20:08:25 +0000 (20:08 +0000)
committerMartin Ling <redacted>
Mon, 18 Nov 2013 20:08:25 +0000 (20:08 +0000)
serialport.c

index eed009ab5f8b50d8195c6771f4209ee36a0ef235..065a224603b7669de622ac35d28eec962e0fc1d2 100644 (file)
@@ -1010,6 +1010,11 @@ int sp_set_config(struct sp_port *port, struct sp_port_config *config)
        struct port_data data;
        struct sp_port_config prev_config;
 
+       CHECK_PORT();
+
+       if (!config)
+               return SP_ERR_ARG;
+
        TRY(get_config(port, &data, &prev_config));
        TRY(set_config(port, &data, config));
 
@@ -1019,6 +1024,7 @@ int sp_set_config(struct sp_port *port, struct sp_port_config *config)
 #define CREATE_SETTER(x) int sp_set_##x(struct sp_port *port, int x) { \
        struct port_data data; \
        struct sp_port_config config; \
+       CHECK_PORT(); \
        TRY(get_config(port, &data, &config)); \
        config.x = x; \
        TRY(set_config(port, &data, &config)); \
@@ -1040,6 +1046,8 @@ int sp_set_flowcontrol(struct sp_port *port, int flowcontrol)
        struct port_data data;
        struct sp_port_config config;
 
+       CHECK_PORT();
+
        TRY(get_config(port, &data, &config));
 
        if (flowcontrol == SP_FLOWCONTROL_XONXOFF)