Lines Matching refs:optlen
50 memcpy(iph + sizeof(struct iphdr), opt->__data, opt->optlen);
82 int optlen;
86 if (sopt->optlen == 0)
93 optlen = sptr[sopt->rr+1];
95 dopt->rr = dopt->optlen + sizeof(struct iphdr);
96 memcpy(dptr, sptr+sopt->rr, optlen);
97 if (sopt->rr_needaddr && soffset <= optlen) {
98 if (soffset + 3 > optlen)
103 dptr += optlen;
104 dopt->optlen += optlen;
107 optlen = sptr[sopt->ts+1];
109 dopt->ts = dopt->optlen + sizeof(struct iphdr);
110 memcpy(dptr, sptr+sopt->ts, optlen);
111 if (soffset <= optlen) {
113 if (soffset + 3 > optlen)
119 if (soffset + 3 > optlen)
127 if (soffset + 7 <= optlen) {
140 dptr += optlen;
141 dopt->optlen += optlen;
147 optlen = start[1];
150 if (soffset > optlen)
151 soffset = optlen + 1;
170 dopt->srr = dopt->optlen + sizeof(struct iphdr);
171 dopt->optlen += doffset+3;
176 optlen = sptr[sopt->cipso+1];
177 dopt->cipso = dopt->optlen+sizeof(struct iphdr);
178 memcpy(dptr, sptr+sopt->cipso, optlen);
179 dptr += optlen;
180 dopt->optlen += optlen;
182 while (dopt->optlen & 3) {
184 dopt->optlen++;
199 int l = opt->optlen;
200 int optlen;
211 optlen = optptr[1];
212 if (optlen < 2 || optlen > l)
215 memset(optptr, IPOPT_NOOP, optlen);
216 l -= optlen;
217 optptr += optlen;
250 int optlen, l;
259 for (l = opt->optlen; l > 0; ) {
278 optlen = optptr[1];
279 if (optlen < 2 || optlen > l) {
286 if (optlen < 3) {
300 if (optptr[2] != 4 || optlen < 7 || ((optlen-3) & 3)) {
305 if (optlen > 7)
306 memmove(&optptr[3], &optptr[7], optlen-7);
316 if (optlen < 3) {
324 if (optptr[2] <= optlen) {
325 if (optptr[2]+3 > optlen) {
344 if (optlen < 4) {
352 if (optptr[2] <= optlen) {
354 if (optptr[2]+3 > optlen) {
366 if (optptr[2]+7 > optlen) {
380 if (optptr[2]+7 > optlen) {
423 if (optlen < 4) {
450 l -= optlen;
451 optptr += optlen;
513 sockptr_t data, int optlen)
517 opt = kzalloc(sizeof(struct ip_options_rcu) + ((optlen + 3) & ~3),
521 if (optlen && copy_from_sockptr(opt->opt.__data, data, optlen)) {
526 while (optlen & 3)
527 opt->opt.__data[optlen++] = IPOPT_END;
528 opt->opt.optlen = optlen;
529 if (optlen && ip_options_compile(net, &opt->opt, NULL)) {