lib/voe_handler.c
branchstable-1.5
changeset 2432 f4313f5aba88
parent 2430 1430a47a67dd
child 2433 3bdd7a747fae
equal deleted inserted replaced
2431:eee9ed9901f7 2432:f4313f5aba88
   169         return EC_REQUEST_ERROR;
   169         return EC_REQUEST_ERROR;
   170     }
   170     }
   171 
   171 
   172     if (data.size) { // new data waiting to be copied
   172     if (data.size) { // new data waiting to be copied
   173         if (voe->mem_size < data.size) {
   173         if (voe->mem_size < data.size) {
   174             if (voe->data)
   174             fprintf(stderr, "Received %u bytes do not fit info VoE data"
   175                 free(voe->data);
   175                     " memory (%u bytes)!\n", data.size, voe->mem_size);
   176             voe->data = malloc(data.size);
   176             return EC_REQUEST_ERROR;
   177             if (!voe->data) {
       
   178                 voe->mem_size = 0;
       
   179                 fprintf(stderr, "Failed to allocate VoE data memory!");
       
   180                 return EC_REQUEST_ERROR;
       
   181             }
       
   182             voe->mem_size = data.size;
       
   183         }
   177         }
   184 
   178 
   185         data.data = voe->data;
   179         data.data = voe->data;
   186 
   180 
   187         if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_DATA, &data) == -1) {
   181         if (ioctl(voe->config->master->fd, EC_IOCTL_VOE_DATA, &data) == -1) {