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

Diff for /src/usr.bin/cvs/rcsnum.c between version 1.53 and 1.54

version 1.53, 2008/05/22 07:03:02 version 1.54, 2012/07/02 21:56:25
Line 42 
Line 42 
 {  {
         RCSNUM *rnp;          RCSNUM *rnp;
   
         rnp = xmalloc(sizeof(*rnp));          rnp = xcalloc(1, sizeof(*rnp));
         rnp->rn_len = 0;          rnp->rn_len = 0;
         rnp->rn_id = NULL;  
   
         return (rnp);          return (rnp);
 }  }
Line 95 
Line 94 
 void  void
 rcsnum_free(RCSNUM *rn)  rcsnum_free(RCSNUM *rn)
 {  {
         if (rn->rn_id != NULL)  
                 xfree(rn->rn_id);  
         xfree(rn);          xfree(rn);
 }  }
   
Line 130 
Line 127 
                     strlcat(buf, str, blen) >= blen)                      strlcat(buf, str, blen) >= blen)
                         fatal("rcsnum_tostr: truncation");                          fatal("rcsnum_tostr: truncation");
         }          }
   
         return (buf);          return (buf);
 }  }
   
Line 169 
Line 165 
                 len = depth;                  len = depth;
   
         rcsnum_setsize(ndst, len);          rcsnum_setsize(ndst, len);
         /* Overflow checked in rcsnum_setsize(). */          memcpy(ndst->rn_id, nsrc->rn_id, len * sizeof(*(nsrc->rn_id)));
         (void)memcpy(ndst->rn_id, nsrc->rn_id,  
             len * sizeof(*(nsrc->rn_id)));  
 }  }
   
 /*  /*
Line 235 
Line 229 
         const char *sp;          const char *sp;
         char *s;          char *s;
   
         if (nump->rn_id == NULL)  
                 nump->rn_id = xmalloc(sizeof(*(nump->rn_id)));  
   
         nump->rn_len = 0;          nump->rn_len = 0;
         nump->rn_id[0] = 0;          nump->rn_id[0] = 0;
   
Line 250 
Line 241 
                                 goto rcsnum_aton_failed;                                  goto rcsnum_aton_failed;
   
                         nump->rn_len++;                          nump->rn_len++;
                         nump->rn_id = xrealloc(nump->rn_id,  
                             nump->rn_len + 1, sizeof(*(nump->rn_id)));  
                         nump->rn_id[nump->rn_len] = 0;                          nump->rn_id[nump->rn_len] = 0;
                         continue;                          continue;
                 }                  }
Line 312 
Line 301 
         /* We can't have a single-digit rcs number. */          /* We can't have a single-digit rcs number. */
         if (nump->rn_len == 0) {          if (nump->rn_len == 0) {
                 nump->rn_len++;                  nump->rn_len++;
                 nump->rn_id = xrealloc(nump->rn_id,  
                     nump->rn_len + 1, sizeof(*(nump->rn_id)));  
                 nump->rn_id[nump->rn_len] = 0;                  nump->rn_id[nump->rn_len] = 0;
         }          }
   
Line 322 
Line 309 
   
 rcsnum_aton_failed:  rcsnum_aton_failed:
         nump->rn_len = 0;          nump->rn_len = 0;
         xfree(nump->rn_id);  
         nump->rn_id = NULL;  
         return (-1);          return (-1);
 }  }
   
Line 439 
Line 424 
 static void  static void
 rcsnum_setsize(RCSNUM *num, u_int len)  rcsnum_setsize(RCSNUM *num, u_int len)
 {  {
         num->rn_id = xrealloc(num->rn_id, len, sizeof(*(num->rn_id)));  
         num->rn_len = len;          num->rn_len = len;
 }  }
   

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.54