[BACK]Return to key.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netipsec

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/netipsec/key.c between version 1.235 and 1.236

version 1.235, 2017/11/08 10:35:30 version 1.236, 2017/11/21 06:49:56
Line 788  static const char *key_getuserfqdn (void
Line 788  static const char *key_getuserfqdn (void
 static void key_sa_chgstate (struct secasvar *, u_int8_t);  static void key_sa_chgstate (struct secasvar *, u_int8_t);
   
 static struct mbuf *key_alloc_mbuf (int);  static struct mbuf *key_alloc_mbuf (int);
   static struct mbuf *key_alloc_mbuf_simple(int, int);
   
 static void key_timehandler(void *);  static void key_timehandler(void *);
 static void key_timehandler_work(struct work *, void *);  static void key_timehandler_work(struct work *, void *);
Line 2416  key_api_spddelete(struct socket *so, str
Line 2417  key_api_spddelete(struct socket *so, str
     }      }
 }  }
   
   static struct mbuf *
   key_alloc_mbuf_simple(int len, int mflag)
   {
           struct mbuf *n;
   
           MGETHDR(n, mflag, MT_DATA);
           if (n && len > MHLEN) {
                   MCLGET(n, mflag);
                   if ((n->m_flags & M_EXT) == 0) {
                           m_freem(n);
                           n = NULL;
                   }
           }
           return n;
   }
   
 /*  /*
  * SADB_SPDDELETE2 processing   * SADB_SPDDELETE2 processing
  * receive   * receive
Line 2465  key_api_spddelete2(struct socket *so, st
Line 2482  key_api_spddelete2(struct socket *so, st
         /* create new sadb_msg to reply. */          /* create new sadb_msg to reply. */
         len = PFKEY_ALIGN8(sizeof(struct sadb_msg));          len = PFKEY_ALIGN8(sizeof(struct sadb_msg));
   
         MGETHDR(n, M_DONTWAIT, MT_DATA);          n = key_alloc_mbuf_simple(len, M_DONTWAIT);
         if (n && len > MHLEN) {  
                 MCLGET(n, M_DONTWAIT);  
                 if ((n->m_flags & M_EXT) == 0) {  
                         m_freem(n);  
                         n = NULL;  
                 }  
         }  
         if (!n)          if (!n)
                 return key_senderror(so, m, ENOBUFS);                  return key_senderror(so, m, ENOBUFS);
   
Line 4072  key_setsadbmsg(u_int8_t type,  u_int16_t
Line 4082  key_setsadbmsg(u_int8_t type,  u_int16_t
   
         len = PFKEY_ALIGN8(sizeof(struct sadb_msg));          len = PFKEY_ALIGN8(sizeof(struct sadb_msg));
   
         MGETHDR(m, M_DONTWAIT, MT_DATA);          m = key_alloc_mbuf_simple(len, M_DONTWAIT);
         if (m && len > MHLEN) {  
                 MCLGET(m, M_DONTWAIT);  
                 if ((m->m_flags & M_EXT) == 0) {  
                         m_freem(m);  
                         m = NULL;  
                 }  
         }  
         if (!m)          if (!m)
                 return NULL;                  return NULL;
         m->m_pkthdr.len = m->m_len = len;          m->m_pkthdr.len = m->m_len = len;
Line 5257  key_api_getspi(struct socket *so, struct
Line 5260  key_api_getspi(struct socket *so, struct
         len = PFKEY_ALIGN8(sizeof(struct sadb_msg)) +          len = PFKEY_ALIGN8(sizeof(struct sadb_msg)) +
             PFKEY_ALIGN8(sizeof(struct sadb_sa));              PFKEY_ALIGN8(sizeof(struct sadb_sa));
   
         MGETHDR(n, M_DONTWAIT, MT_DATA);          n = key_alloc_mbuf_simple(len, M_DONTWAIT);
         if (len > MHLEN) {  
                 MCLGET(n, M_DONTWAIT);  
                 if ((n->m_flags & M_EXT) == 0) {  
                         m_freem(n);  
                         n = NULL;  
                 }  
         }  
         if (!n)          if (!n)
                 return key_senderror(so, m, ENOBUFS);                  return key_senderror(so, m, ENOBUFS);
   
Line 7105  key_api_register(struct socket *so, stru
Line 7101  key_api_register(struct socket *so, stru
         if (len > MCLBYTES)          if (len > MCLBYTES)
                 return key_senderror(so, m, ENOBUFS);                  return key_senderror(so, m, ENOBUFS);
   
         MGETHDR(n, M_DONTWAIT, MT_DATA);          n = key_alloc_mbuf_simple(len, M_DONTWAIT);
         if (len > MHLEN) {  
                 MCLGET(n, M_DONTWAIT);  
                 if ((n->m_flags & M_EXT) == 0) {  
                         m_freem(n);  
                         n = NULL;  
                 }  
         }  
         if (!n)          if (!n)
                 return key_senderror(so, m, ENOBUFS);                  return key_senderror(so, m, ENOBUFS);
   
Line 7728  key_parse(struct mbuf *m, struct socket 
Line 7717  key_parse(struct mbuf *m, struct socket 
         if (m->m_next) {          if (m->m_next) {
                 struct mbuf *n;                  struct mbuf *n;
   
                 MGETHDR(n, M_DONTWAIT, MT_DATA);                  n = key_alloc_mbuf_simple(m->m_pkthdr.len, M_DONTWAIT);
                 if (n && m->m_pkthdr.len > MHLEN) {  
                         MCLGET(n, M_DONTWAIT);  
                         if ((n->m_flags & M_EXT) == 0) {  
                                 m_free(n);  
                                 n = NULL;  
                         }  
                 }  
                 if (!n) {                  if (!n) {
                         m_freem(m);                          m_freem(m);
                         return ENOBUFS;                          return ENOBUFS;

Legend:
Removed from v.1.235  
changed lines
  Added in v.1.236

CVSweb <webmaster@jp.NetBSD.org>