[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: προσπάθεια σύνδεσης με IPv6



On Thu, 25 Feb 2010, Christos Ricudis wrote:
struct sockaddr_right {
	u_short sa_family;
	u_short sa_sockaddr_len;
	char *sa_data;
};

Nope. To sa_data einai userland pointer o opoios 8a prepei meta na ginei
dereferenced apo ton pyrhna kai allocated se dikh tou mnhmh. As'to.
Epishs, to sa_sockaddr_len de xreiazetai na emperiexetai se ena toso
"commonly used" struct. Mporei na dw8ei ws 3exwristh parametros sth
sunarthsh pou to xrhsimopoiei.

Esy mallon 8es kati tetoio:

struct sockaddr {
	u_short sa_family;
	u_char sa_data[];
};

Auto onomazetai flexible array kai einai metagenestero tou BSD4.2 (C99).
Ston GCC to vlepeis synh8ws me th morfh zero-sized array
(char sa_data[0]).

Paliotera to trick auto ginotan me ena pio akompso tropo:

struct sockaddr {
        u_short sa_family;
        char sa_data[1];
};

Auth h texnikh xrhsimopoieitai kai sth msgsnd(2) gia na valeis to diko
sou variable sized payload.

--
dimitris


Reply to: