[BACK]Return to sshbuf.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/sshbuf.c between version 1.11 and 1.12

version 1.11, 2017/06/01 06:58:25 version 1.12, 2018/07/09 21:56:06
Line 34 
Line 34 
             (!buf->readonly && buf->d != buf->cd) ||              (!buf->readonly && buf->d != buf->cd) ||
             buf->refcount < 1 || buf->refcount > SSHBUF_REFS_MAX ||              buf->refcount < 1 || buf->refcount > SSHBUF_REFS_MAX ||
             buf->cd == NULL ||              buf->cd == NULL ||
             (buf->dont_free && (buf->readonly || buf->parent != NULL)) ||  
             buf->max_size > SSHBUF_SIZE_MAX ||              buf->max_size > SSHBUF_SIZE_MAX ||
             buf->alloc > buf->max_size ||              buf->alloc > buf->max_size ||
             buf->size > buf->alloc ||              buf->size > buf->alloc ||
Line 130 
Line 129 
 }  }
   
 void  void
 sshbuf_init(struct sshbuf *ret)  
 {  
         explicit_bzero(ret, sizeof(*ret));  
         ret->alloc = SSHBUF_SIZE_INIT;  
         ret->max_size = SSHBUF_SIZE_MAX;  
         ret->readonly = 0;  
         ret->dont_free = 1;  
         ret->refcount = 1;  
         if ((ret->cd = ret->d = calloc(1, ret->alloc)) == NULL)  
                 ret->alloc = 0;  
 }  
   
 void  
 sshbuf_free(struct sshbuf *buf)  sshbuf_free(struct sshbuf *buf)
 {  {
         int dont_free = 0;  
   
         if (buf == NULL)          if (buf == NULL)
                 return;                  return;
         /*          /*
Line 171 
Line 155 
         buf->refcount--;          buf->refcount--;
         if (buf->refcount > 0)          if (buf->refcount > 0)
                 return;                  return;
         dont_free = buf->dont_free;  
         if (!buf->readonly) {          if (!buf->readonly) {
                 explicit_bzero(buf->d, buf->alloc);                  explicit_bzero(buf->d, buf->alloc);
                 free(buf->d);                  free(buf->d);
         }          }
         explicit_bzero(buf, sizeof(*buf));          explicit_bzero(buf, sizeof(*buf));
         if (!dont_free)          free(buf);
                 free(buf);  
 }  }
   
 void  void

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12