Re: [PATCH 1/2] speedupmodem: ussd: ensure ussd content fits in buffer

Denis Kenzior <[email protected]> Mon, 16 Dec 2024 14:27:40 -0600
Newsgroups dev.linux.lists.ofono
Message-ID <[email protected]>
On 12/16/24 5:00 AM, Sicelo A. Mhlongo wrote:
> Additional fix for CVE-2024-7539
> ---
>   drivers/speedupmodem/ussd.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 

This set also fails to compile:

Fedora (glibc) clang debug+sanitizers
=====================================
Configure: PASS
Build: FAIL
     drivers/huaweimodem/ussd.c:42:23: error: unused variable 'msg_ptr' 
[-Werror,-Wunused-variable]
        42 |         const unsigned char *msg_ptr = NULL;
           |                              ^~~~~~~
     drivers/huaweimodem/ussd.c:43:7: error: unused variable 'msg_len' 
[-Werror,-Wunused-variable]
        43 |         long msg_len;
           |              ^~~~~~~
     drivers/huaweimodem/ussd.c:54:8: error: use of undeclared label 'out'
        54 |                 goto out;
           |                      ^
     drivers/huaweimodem/ussd.c:62:2: error: type specifier missing, defaults to 
'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
        62 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |         ^
           |         int
     drivers/huaweimodem/ussd.c:62:31: error: use of undeclared identifier 'content'
        62 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |                                      ^
     drivers/huaweimodem/ussd.c:62:45: error: use of undeclared identifier 'msg_len'
        62 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |                                                    ^
     drivers/huaweimodem/ussd.c:62:57: error: use of undeclared identifier 'msg'
        62 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |                                                                ^
     drivers/huaweimodem/ussd.c:64:1: error: type specifier missing, defaults to 
'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
        64 | out:
           | ^
           | int
     drivers/huaweimodem/ussd.c:64:4: error: expected ';' after top level declarator
        64 | out:
           |    ^
           |    ;
     drivers/huaweimodem/ussd.c:65:48: error: redefinition of parameter 'msg_ptr'
        65 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                                                       ^
     drivers/huaweimodem/ussd.c:65:56: error: expected ')'
        65 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                                                               ^
     drivers/huaweimodem/ussd.c:65:19: note: to match this '('
        65 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                          ^
     drivers/huaweimodem/ussd.c:65:2: error: type specifier missing, defaults to 
'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
        65 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |         ^
           |         int
     drivers/huaweimodem/ussd.c:65:20: error: a parameter list without types is 
only allowed in a function definition
        65 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                           ^
     drivers/huaweimodem/ussd.c:66:1: error: extraneous closing brace ('}')
        66 | }
           | ^
     14 errors generated.
     make[1]: *** [Makefile:4083: drivers/huaweimodem/ussd.o] Error 1
     drivers/speedupmodem/ussd.c:41:23: error: unused variable 'msg_ptr' 
[-Werror,-Wunused-variable]
        41 |         const unsigned char *msg_ptr = NULL;
           |                              ^~~~~~~
     drivers/speedupmodem/ussd.c:42:7: error: unused variable 'msg_len' 
[-Werror,-Wunused-variable]
        42 |         long msg_len;
           |              ^~~~~~~
     drivers/speedupmodem/ussd.c:53:8: error: use of undeclared label 'out'
        53 |                 goto out;
           |                      ^
     drivers/speedupmodem/ussd.c:61:2: error: type specifier missing, defaults 
to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
        61 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |         ^
           |         int
     drivers/speedupmodem/ussd.c:61:31: error: use of undeclared identifier 
'content'
        61 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |                                      ^
     drivers/speedupmodem/ussd.c:61:45: error: use of undeclared identifier 
'msg_len'
        61 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |                                                    ^
     drivers/speedupmodem/ussd.c:61:57: error: use of undeclared identifier 'msg'
        61 |         msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg);
           |                                                                ^
     drivers/speedupmodem/ussd.c:63:1: error: type specifier missing, defaults 
to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
        63 | out:
           | ^
           | int
     drivers/speedupmodem/ussd.c:63:4: error: expected ';' after top level 
declarator
        63 | out:
           |    ^
           |    ;
     drivers/speedupmodem/ussd.c:64:48: error: redefinition of parameter 'msg_ptr'
        64 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                                                       ^
     drivers/speedupmodem/ussd.c:64:56: error: expected ')'
        64 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                                                               ^
     drivers/speedupmodem/ussd.c:64:19: note: to match this '('
        64 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                          ^
     drivers/speedupmodem/ussd.c:64:2: error: type specifier missing, defaults 
to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
        64 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |         ^
           |         int
     drivers/speedupmodem/ussd.c:64:20: error: a parameter list without types is 
only allowed in a function definition
        64 |         ofono_ussd_notify(ussd, status, dcs, msg_ptr, msg_ptr ? 
msg_len : 0);
           |                           ^
     drivers/speedupmodem/ussd.c:65:1: error: extraneous closing brace ('}')
        65 | }
           | ^
     14 errors generated.
     make[1]: *** [Makefile:4083: drivers/speedupmodem/ussd.o] Error 1
     make[1]: Target 'all-am' not remade because of errors.
     make: *** [Makefile:2388: all] Error 2