openwrt/package/network/utils/linux-atm/patches/700-fix-gcc14-build.patch
Rany Hany 3e024022c3 linux-atm: fix build with GCC 14
Basic changes to make linux-atm build without any issues with GCC 14.

Besides some errors caused by -Wpointer-sign, there was also an issue
with socklen_t not being used for getsockopt() and accept()
sometimes.

I also updated the Debian patch to include the latest changes from
version "1:2.5.1-5.1" in Debian Sid. This allowed me to drop
"600-fix-format-errors.patch" and "700-include_sockios.patch".

Signed-off-by: Rany Hany <rany_hany@riseup.net>
2024-05-24 00:09:47 +02:00

83 lines
2.8 KiB
Diff

--- a/src/arpd/io.c
+++ b/src/arpd/io.c
@@ -615,7 +615,7 @@ int ip_itf_info(int number,uint32_t *ip,
int get_local(int fd,struct sockaddr_atmsvc *addr)
{
int result;
- size_t length;
+ socklen_t length;
length = sizeof(struct sockaddr_atmsvc);
result = getsockname(fd,(struct sockaddr *) addr,&length);
--- a/src/led/conn.c
+++ b/src/led/conn.c
@@ -405,7 +405,7 @@ Conn_t *accept_conn(Conn_t *conn)
{
Conn_t *new;
struct sockaddr_atmsvc addr;
- size_t len;
+ socklen_t len;
int fd;
char buff[MAX_ATM_ADDR_LEN+1];
@@ -538,7 +538,7 @@ static int handle_accept(Conn_t *conn)
*/
static int handle_data(Conn_t *conn)
{
- char buff[MAX_CTRL_FRAME];
+ unsigned char buff[MAX_CTRL_FRAME];
int retval;
retval = recv_frame(conn, buff, sizeof(buff));
--- a/src/led/frames.c
+++ b/src/led/frames.c
@@ -312,7 +312,7 @@ static void handle_ready_ind(Conn_t *con
* dependant handler functions.
* Returns < 0 for serious error
*/
-int handle_frame(Conn_t *conn, char *buff, int size)
+int handle_frame(Conn_t *conn, unsigned char *buff, int size)
{
struct ctrl_frame *frame;
--- a/src/led/frames.h
+++ b/src/led/frames.h
@@ -13,7 +13,7 @@ int validate_frame(unsigned char *buff,
void send_ready_ind(Conn_t *conn);
void send_register_req(void);
-int handle_frame(Conn_t *conn, char *buff, int size);
+int handle_frame(Conn_t *conn, unsigned char *buff, int size);
uint32_t send_flush_req(Conn_t *conn);
void parse_tlvs(uint16_t opcode, unsigned char *tlvp, int numtlvs, int sizeoftlvs);
--- a/src/led/join.c
+++ b/src/led/join.c
@@ -43,7 +43,7 @@ static int read_join_rsp(char *buff, int
static int parse_join_rsp(unsigned char *buff, int size);
static int get_bus_addr(struct sockaddr_atmsvc *addr);
-static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, char *buff, int buffsize);
+static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, unsigned char *buff, int buffsize);
/*
* 5.1, Initial state
@@ -693,7 +693,7 @@ static int get_bus_addr(struct sockaddr_
fd_set rfds;
struct timeval tv;
int n = 0, retval, timeout;
- char buff[MAX_CTRL_FRAME];
+ unsigned char buff[MAX_CTRL_FRAME];
timeout = 4; /* wait response for 4 seconds */
lec_params.c7c_current_timeout = 1;
@@ -740,7 +740,7 @@ static int get_bus_addr(struct sockaddr_
* Tries to read BUS ATM address in *addr
* returns < 0 for error, 0 for not found > 0 for success
*/
-static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, char *buff, int buffsize)
+static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, unsigned char *buff, int buffsize)
{
int frame_size;
struct ctrl_frame *frame;