Diff for /libaitio/src/Attic/vars.c between versions 1.5.2.4 and 1.5.2.5

version 1.5.2.4, 2012/04/02 09:10:31 version 1.5.2.5, 2012/05/14 12:48:21
Line 71  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 71  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
   
         Limit = sizeof(ait_val_t) * io_arraySize(vars);          Limit = sizeof(ait_val_t) * io_arraySize(vars);
         if (Limit > buflen) {          if (Limit > buflen) {
                io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n",                 io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", 
                                 buflen, Limit);                                  buflen, Limit);
                 return -1;                  return -1;
         } else {          } else {
Line 105  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 105  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
                                 break;                                  break;
                         case data:                          case data:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
                                        io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "                                        io_SetErr(EMSGSIZE, "Short buffer buflen=%d "
                                                        "needed min %d ...\n", buflen, Limit + AIT_LEN(val));                                                        "needed min %d", buflen, Limit + AIT_LEN(val));
                                         return -1;                                          return -1;
                                 } else                                  } else
                                         Limit += AIT_LEN(val);                                          Limit += AIT_LEN(val);
Line 119  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 119  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
                                        io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "                                        io_SetErr(EMSGSIZE, "Short buffer buflen=%d "
                                                        "needed min %d ...\n", buflen, Limit + AIT_LEN(val));                                                        "needed min %d", buflen, Limit + AIT_LEN(val));
                                         return -1;                                          return -1;
                                 } else                                  } else
                                         Limit += AIT_LEN(val);                                          Limit += AIT_LEN(val);
Line 131  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 131  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
                                 dat += AIT_LEN(val);                                  dat += AIT_LEN(val);
                                 break;                                  break;
                         default:                          default:
                                io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n",                                 io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", 
                                                 AIT_TYPE(val), i);                                                  AIT_TYPE(val), i);
                                 return -1;                                  return -1;
                 }                  }
Line 165  io_buffer2vars(u_char *buf, int buflen, int vnum, int  Line 165  io_buffer2vars(u_char *buf, int buflen, int vnum, int 
   
         Limit = sizeof(ait_val_t) * vnum;          Limit = sizeof(ait_val_t) * vnum;
         if (Limit > buflen) {          if (Limit > buflen) {
                io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n",                 io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", 
                                 buflen, Limit);                                  buflen, Limit);
                 return NULL;                  return NULL;
         } else {          } else {
Line 223  io_buffer2vars(u_char *buf, int buflen, int vnum, int  Line 223  io_buffer2vars(u_char *buf, int buflen, int vnum, int 
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
                                        io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "                                        io_SetErr(EMSGSIZE, "Short buffer buflen=%d "
                                                        "needed min %d ...\n", buflen, Limit + AIT_LEN(val));                                                        "needed min %d", buflen, Limit + AIT_LEN(val));
                                         if (!zcpy)                                          if (!zcpy)
                                                 io_arrayFree(vars);                                                  io_arrayFree(vars);
                                         io_arrayDestroy(&vars);                                          io_arrayDestroy(&vars);
Line 246  io_buffer2vars(u_char *buf, int buflen, int vnum, int  Line 246  io_buffer2vars(u_char *buf, int buflen, int vnum, int 
                                 dat += AIT_LEN(val);                                  dat += AIT_LEN(val);
                                 break;                                  break;
                         default:                          default:
                                io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n",                                 io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", 
                                                 AIT_TYPE(val), i);                                                  AIT_TYPE(val), i);
                                 if (!zcpy)                                  if (!zcpy)
                                         io_arrayFree(vars);                                          io_arrayFree(vars);
Line 285  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 285  io_vars2map(u_char *buf, int buflen, array_t *vars)
   
         Limit = sizeof(ait_val_t) * io_arraySize(vars);          Limit = sizeof(ait_val_t) * io_arraySize(vars);
         if (Limit > buflen) {          if (Limit > buflen) {
                io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n",                 io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", 
                                 buflen, Limit);                                  buflen, Limit);
                 return -1;                  return -1;
         } else {          } else {
Line 319  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 319  io_vars2map(u_char *buf, int buflen, array_t *vars)
                                 break;                                  break;
                         case data:                          case data:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
                                        io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "                                        io_SetErr(EMSGSIZE, "Short buffer buflen=%d "
                                                        "needed min %d ...\n", buflen, Limit + AIT_LEN(val));                                                        "needed min %d", buflen, Limit + AIT_LEN(val));
                                         return -1;                                          return -1;
                                 } else                                  } else
                                         Limit += AIT_LEN(val);                                          Limit += AIT_LEN(val);
Line 333  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 333  io_vars2map(u_char *buf, int buflen, array_t *vars)
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
                                        io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "                                        io_SetErr(EMSGSIZE, "Short buffer buflen=%d "
                                                        "needed min %d ...\n", buflen, Limit + AIT_LEN(val));                                                        "needed min %d", buflen, Limit + AIT_LEN(val));
                                         return -1;                                          return -1;
                                 } else                                  } else
                                         Limit += AIT_LEN(val);                                          Limit += AIT_LEN(val);
Line 345  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 345  io_vars2map(u_char *buf, int buflen, array_t *vars)
                                 dat += AIT_LEN(val);                                  dat += AIT_LEN(val);
                                 break;                                  break;
                         default:                          default:
                                io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n",                                 io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", 
                                                 AIT_TYPE(val), i);                                                  AIT_TYPE(val), i);
                                 return -1;                                  return -1;
                 }                  }
Line 379  io_map2vars(u_char *buf, int buflen, int vnum, int zcp Line 379  io_map2vars(u_char *buf, int buflen, int vnum, int zcp
   
         Limit = sizeof(ait_val_t) * vnum;          Limit = sizeof(ait_val_t) * vnum;
         if (Limit > buflen) {          if (Limit > buflen) {
                io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n",                 io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", 
                                 buflen, Limit);                                  buflen, Limit);
                 return NULL;                  return NULL;
         } else {          } else {
Line 428  io_map2vars(u_char *buf, int buflen, int vnum, int zcp Line 428  io_map2vars(u_char *buf, int buflen, int vnum, int zcp
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
                                        io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "                                        io_SetErr(EMSGSIZE, "short buffer buflen=%d "
                                                        "needed min %d ...\n", buflen, Limit + AIT_LEN(val));                                                        "needed min %d", buflen, Limit + AIT_LEN(val));
                                         if (!zcpy)                                          if (!zcpy)
                                                 io_arrayFree(vars);                                                  io_arrayFree(vars);
                                         io_arrayDestroy(&vars);                                          io_arrayDestroy(&vars);
Line 451  io_map2vars(u_char *buf, int buflen, int vnum, int zcp Line 451  io_map2vars(u_char *buf, int buflen, int vnum, int zcp
                                 dat += AIT_LEN(val);                                  dat += AIT_LEN(val);
                                 break;                                  break;
                         default:                          default:
                                io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n",                                 io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", 
                                                 AIT_TYPE(val), i);                                                  AIT_TYPE(val), i);
                                 if (!zcpy)                                  if (!zcpy)
                                         io_arrayFree(vars);                                          io_arrayFree(vars);
Line 481  io_allocVars(int varnum) Line 481  io_allocVars(int varnum)
                 return NULL;                  return NULL;
   
         for (i = 0; i < io_arraySize(arr); i++) {          for (i = 0; i < io_arraySize(arr); i++) {
                v = malloc(sizeof(ait_val_t));                if (!(v = io_allocVar())) {
                if (!v) { 
                        LOGERR; 
                         io_freeVars(&arr);                          io_freeVars(&arr);
                         return NULL;                          return NULL;
                } else {                } else
                        memset(v, 0, sizeof(ait_val_t)); 
                         io_arraySet(arr, i, v);                          io_arraySet(arr, i, v);
                 }  
         }          }
   
         return arr;          return arr;
Line 505  inline int Line 501  inline int
 io_clrVars(array_t * __restrict vars)  io_clrVars(array_t * __restrict vars)
 {  {
         register int i;          register int i;
         ait_val_t *v;  
   
         if (!vars)          if (!vars)
                 return -1;                  return -1;
   
         for (i = 0; i < io_arraySize(vars); i++)          for (i = 0; i < io_arraySize(vars); i++)
                if ((v = io_array(vars, i, ait_val_t*)))                io_freeVar((ait_val_t**) io_arrayGet2(vars, i));
                        AIT_FREE_VAL(v); 
   
         return io_arraySize(vars);          return io_arraySize(vars);
 }  }
Line 530  io_freeVars(array_t ** __restrict vars) Line 524  io_freeVars(array_t ** __restrict vars)
                 return;                  return;
   
         io_clrVars(*vars);          io_clrVars(*vars);
         io_arrayFree(*vars);  
         io_arrayDestroy(vars);          io_arrayDestroy(vars);
 }  }
   
Line 562  io_allocVar(void) Line 555  io_allocVar(void)
  * return: none   * return: none
  */   */
 inline void  inline void
io_freeVar(ait_val_t * __restrict val)io_freeVar(ait_val_t ** __restrict val)
 {  {
        if (val) {        if (val && *val) {
                AIT_FREE_VAL(val);                AIT_FREE_VAL(*val);
                free(val);                free(*val);
                val = NULL;                *val = NULL;
         }          }
 }  }
   

Removed from v.1.5.2.4  
changed lines
  Added in v.1.5.2.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>