Changeset 15282


Ignore:
Timestamp:
04/16/12 01:10:45 (11 years ago)
Author:
nit
Message:

fix

Location:
titan/titan
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/ca.h

    r15189 r15282  
    188188        }
    189189
    190         struct queue* qe = addqueue(dvbnode->devnr, tmpbuf, len, flag, NULL);
     190        struct queue* qe = addqueue(dvbnode->devnr, tmpbuf, len, NULL, 0, flag, NULL);
    191191        free(tmpbuf); tmpbuf = NULL;
    192192        if(qe == NULL)
  • titan/titan/queue.h

    r10718 r15282  
    1313}
    1414
    15 struct queue* addqueue(int type, void* data, int len, int flag, struct queue* last)
     15struct queue* addqueue(int type, void* data, int len, void* dat1, int len1, int flag, struct queue* last)
    1616{
    1717        //debug(1000, "in");
     
    2020
    2121        struct queue *newnode = NULL, *prev = NULL, *node = queue;
    22         void* tmpdata = NULL;
     22        void* tmpdata = NULL, *tmpdata1 = NULL;
    2323
    2424        newnode = (struct queue*)malloc(sizeof(struct queue)); 
     
    3030        }
    3131
    32         tmpdata = malloc(len);
    33         if(tmpdata == NULL)
     32        if(len > 0)
    3433        {
    35                 err("no memory");
    36                 free(newnode);
    37                 m_unlock(&status.queuemutex, 11);
    38                 return NULL;
     34                tmpdata = malloc(len);
     35                if(tmpdata == NULL)
     36                {
     37                        err("no memory");
     38                        free(newnode);
     39                        m_unlock(&status.queuemutex, 11);
     40                        return NULL;
     41                }
    3942        }
     43       
     44        if(len1 > 0)
     45        {
     46                tmpdata1 = malloc(len1);
     47                if(tmpdata1 == NULL)
     48                {
     49                        err("no memory");
     50                        free(tmpdata);
     51                        free(newnode);
     52                        m_unlock(&status.queuemutex, 11);
     53                        return NULL;
     54                }
     55        }
     56       
    4057        memset(newnode, 0, sizeof(struct queue));
    4158
     
    4360        newnode->len = len;
    4461        newnode->flag = flag;
    45         newnode->data = memcpy(tmpdata, data, len);
     62        if(len > 0) newnode->data = memcpy(tmpdata, data, len);
     63        if(len1 > 0) newnode->data1 = memcpy(tmpdata1, data1, len1);
    4664
    4765        if(last == NULL)
     
    101119                        free(node->data);
    102120                        node->data = NULL;
     121                       
     122                        free(node->data1);
     123                        node->data1 = NULL;
    103124
    104125                        free(node);
  • titan/titan/struct.h

    r15281 r15282  
    198198        int len;
    199199        void* data;
     200        void* data1;
    200201        struct queue* prev;
    201202        struct queue* next;
Note: See TracChangeset for help on using the changeset viewer.