Changeset 4456
- Timestamp:
- 01/14/11 15:57:05 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-cccam.c
r4452 r4456 19 19 20 20 #define getprefix() ((struct cc_data *)(cl->cc))->prefix 21 21 #define QUITERROR 1 22 22 23 23 void cc_init_crypt(struct cc_crypt_block *block, uint8 *key, int len) { … … 129 129 void cc_crypt_cmd0c(struct s_client *cl, uint8 *buf, int len) { 130 130 struct cc_data *cc = cl->cc; 131 uint8 *out = malloc(len);131 uint8 *out = cs_malloc(&out, len, QUITERROR); 132 132 133 133 switch (cc->cmd0c_mode) { … … 265 265 return; 266 266 267 struct cc_srvid *srvid = malloc(sizeof(struct cc_srvid)); 268 if (srvid) { 269 *srvid = *srvid_blocked; 270 ll_append(card->badsids, srvid); 271 cs_debug_mask(D_READER, "%s added sid block %04X(%d) for card %08x", 272 getprefix(), srvid_blocked->sid, srvid_blocked->ecmlen, 273 card->id); 274 } 267 struct cc_srvid *srvid = cs_malloc(&srvid, sizeof(struct cc_srvid), QUITERROR); 268 *srvid = *srvid_blocked; 269 ll_append(card->badsids, srvid); 270 cs_debug_mask(D_READER, "%s added sid block %04X(%d) for card %08x", 271 getprefix(), srvid_blocked->sid, srvid_blocked->ecmlen, 272 card->id); 275 273 } 276 274 … … 299 297 300 298 remove_sid_block(card, srvid_good); 301 struct cc_srvid *srvid = malloc(sizeof(struct cc_srvid)); 302 if (srvid) { 303 memcpy(srvid, srvid_good, sizeof(struct cc_srvid)); 304 ll_append(card->goodsids, srvid); 305 cs_debug_mask(D_READER, "%s added good sid %04X(%d) for card %08x", 306 getprefix(), srvid_good->sid, srvid_good->ecmlen, card->id); 307 } 299 struct cc_srvid *srvid = cs_malloc(&srvid, sizeof(struct cc_srvid), QUITERROR); 300 memcpy(srvid, srvid_good, sizeof(struct cc_srvid)); 301 ll_append(card->goodsids, srvid); 302 cs_debug_mask(D_READER, "%s added good sid %04X(%d) for card %08x", 303 getprefix(), srvid_good->sid, srvid_good->ecmlen, card->id); 308 304 } 309 305 … … 351 347 struct cc_data *cc = cl->cc; 352 348 struct cc_extended_ecm_idx *eei = 353 malloc(sizeof(struct cc_extended_ecm_idx));349 cs_malloc(&eei, sizeof(struct cc_extended_ecm_idx), QUITERROR); 354 350 eei->send_idx = send_idx; 355 351 eei->ecm_idx = ecm_idx; … … 1160 1156 if (card) { 1161 1157 if (!current_card) { 1162 current_card = malloc(sizeof(struct cc_current_card));1158 current_card = cs_malloc(¤t_card, sizeof(struct cc_current_card), QUITERROR); 1163 1159 current_card->card = card; 1164 1160 current_card->prov = cur_er->prid; … … 1388 1384 1389 1385 int size = ep->l + 12; 1390 uint8 *emmbuf = malloc(size);1386 uint8 *emmbuf = cs_malloc(&emmbuf, size, QUITERROR); 1391 1387 memset(emmbuf, 0, size); 1392 1388 … … 1609 1605 1610 1606 struct cc_card *read_card(uint8 *buf, int ext) { 1611 struct cc_card *card = malloc(sizeof(struct cc_card));1607 struct cc_card *card = cs_malloc(&card, sizeof(struct cc_card), QUITERROR); 1612 1608 memset(card, 0, sizeof(struct cc_card)); 1613 1609 … … 1640 1636 int i; 1641 1637 for (i = 0; i < nprov; i++) { // providers 1642 struct cc_provider *prov = malloc(sizeof(struct cc_provider));1638 struct cc_provider *prov = cs_malloc(&prov, sizeof(struct cc_provider), QUITERROR); 1643 1639 prov->prov = b2i(3, buf + offset); 1644 1640 if (prov->prov == 0xFFFFFF && (card->caid >> 8) == 0x17) … … 1659 1655 //cs_debug_mask(D_CLIENT, " assigned sid = %04X, added to good sid list", sid); 1660 1656 1661 struct cc_srvid *srvid = malloc(sizeof(struct cc_srvid));1657 struct cc_srvid *srvid = cs_malloc(&srvid, sizeof(struct cc_srvid), QUITERROR); 1662 1658 srvid->sid = sid; 1663 1659 srvid->ecmlen = 0; … … 1670 1666 //cs_debug_mask(D_CLIENT, " rejected sid = %04X, added to sid block list", sid); 1671 1667 1672 struct cc_srvid *srvid = malloc(sizeof(struct cc_srvid));1668 struct cc_srvid *srvid = cs_malloc(&srvid, sizeof(struct cc_srvid), QUITERROR); 1673 1669 srvid->sid = sid; 1674 1670 srvid->ecmlen = 0; … … 1681 1677 ptr++; 1682 1678 for (i = 0; i < remote_count; i++) { 1683 uint8 *remote_node = malloc(8);1679 uint8 *remote_node = cs_malloc(&remote_node, 8, QUITERROR); 1684 1680 memcpy(remote_node, ptr, 8); 1685 1681 ll_append(card->remote_nodes, remote_node); … … 2173 2169 ECM_REQUEST *er; 2174 2170 2175 struct cc_card *server_card = malloc(sizeof(struct cc_card));2171 struct cc_card *server_card = cs_malloc(&server_card, sizeof(struct cc_card), QUITERROR); 2176 2172 memset(server_card, 0, sizeof(struct cc_card)); 2177 2173 server_card->id = buf[10] << 24 | buf[11] << 16 | buf[12] << 8 … … 2453 2449 } 2454 2450 2455 EMM_PACKET *emm = malloc(sizeof(EMM_PACKET));2451 EMM_PACKET *emm = cs_malloc(&emm, sizeof(EMM_PACKET), QUITERROR); 2456 2452 memset(emm, 0, sizeof(EMM_PACKET)); 2457 2453 emm->caid[0] = buf[4]; … … 2586 2582 if (buf == NULL || l <= 0) 2587 2583 return -1; 2588 cbuf = malloc(l);2584 cbuf = cs_malloc(&cbuf, l, QUITERROR); 2589 2585 memcpy(cbuf, buf, l); // make a copy of buf 2590 2586 … … 2667 2663 } 2668 2664 if (!srvid_dst) { 2669 srvid_dst = malloc(sizeof(struct cc_srvid));2665 srvid_dst = cs_malloc(&srvid_dst, sizeof(struct cc_srvid), QUITERROR); 2670 2666 memcpy(srvid_dst, srvid_src, sizeof(struct cc_srvid)); 2671 2667 ll_iter_insert(it_dst, srvid_dst); … … 2693 2689 } 2694 2690 if (!prov_info) { 2695 struct cc_provider *prov_new = malloc(sizeof(struct cc_provider));2691 struct cc_provider *prov_new = cs_malloc(&prov_new, sizeof(struct cc_provider), QUITERROR); 2696 2692 memcpy(prov_new, provider, sizeof(struct cc_provider)); 2697 2693 ll_iter_insert(it_dst, prov_new); … … 2715 2711 } 2716 2712 if (!remote_node2) { 2717 uint8* remote_node_new = malloc(8);2713 uint8* remote_node_new = cs_malloc(&remote_node_new, 8, QUITERROR); 2718 2714 memcpy(remote_node_new, remote_node, 8); 2719 2715 ll_iter_insert(it_dst, remote_node_new); … … 2728 2724 2729 2725 struct cc_card *create_card(struct cc_card *card) { 2730 struct cc_card *card2 = malloc(sizeof(struct cc_card));2726 struct cc_card *card2 = cs_malloc(&card2, sizeof(struct cc_card), QUITERROR); 2731 2727 if (card) 2732 2728 memcpy(card2, card, sizeof(struct cc_card)); … … 2831 2827 2832 2828 if (!ll_has_elements(card->providers)) { //No providers? Add null-provider: 2833 struct cc_provider *prov = malloc(sizeof(struct cc_provider));2829 struct cc_provider *prov = cs_malloc(&prov, sizeof(struct cc_provider), QUITERROR); 2834 2830 memset(prov, 0, sizeof(struct cc_provider)); 2835 2831 ll_append(card->providers, prov); … … 3013 3009 int l; 3014 3010 for (l=0;l<ptr->num_provid;l++) { 3015 struct cc_provider *prov = malloc(sizeof(struct cc_provider));3011 struct cc_provider *prov = cs_malloc(&prov, sizeof(struct cc_provider), QUITERROR); 3016 3012 memset(prov, 0, sizeof(struct cc_provider)); 3017 3013 prov->prov = ptr->provid[l]; … … 3065 3061 int l; 3066 3062 for (l=0;l<ptr->num_provid;l++) { 3067 struct cc_provider *prov = malloc(sizeof(struct cc_provider));3063 struct cc_provider *prov = cs_malloc(&prov, sizeof(struct cc_provider), QUITERROR); 3068 3064 memset(prov, 0, sizeof(struct cc_provider)); 3069 3065 prov->prov = ptr->provid[l]; … … 3090 3086 //cs_log("Ident CCcam card report caid: %04X readr %s subid: %06X", rdr->ftab.filts[j].caid, rdr->label, rdr->cc_id); 3091 3087 for (k = 0; k < rdr->ftab.filts[j].nprids; k++) { 3092 struct cc_provider *prov = malloc(sizeof(struct cc_provider));3088 struct cc_provider *prov = cs_malloc(&prov, sizeof(struct cc_provider), QUITERROR); 3093 3089 memset(prov, 0, sizeof(struct cc_provider)); 3094 3090 prov->prov = rdr->ftab.filts[j].prids[k]; … … 3143 3139 for (j = 0; j < rdr->nprov; j++) { 3144 3140 ulong prid = get_reader_prid(rdr, j); 3145 struct cc_provider *prov = malloc(sizeof(struct cc_provider));3141 struct cc_provider *prov = cs_malloc(&prov, sizeof(struct cc_provider), QUITERROR); 3146 3142 memset(prov, 0, sizeof(struct cc_provider)); 3147 3143 prov->prov = prid; … … 3312 3308 if (!cc) { 3313 3309 // init internals data struct 3314 cc = malloc(sizeof(struct cc_data)); 3315 if (cc == NULL) { 3316 cs_log("cannot allocate memory"); 3317 return -1; 3318 } 3319 3310 cc = cs_malloc(&cc, sizeof(struct cc_data), QUITERROR); 3320 3311 cl->cc = cc; 3321 3312 memset(cl->cc, 0, sizeof(struct cc_data)); … … 3383 3374 3384 3375 account = cfg->account; 3385 struct cc_crypt_block *save_block = malloc(sizeof(struct cc_crypt_block));3376 struct cc_crypt_block *save_block = cs_malloc(&save_block, sizeof(struct cc_crypt_block), QUITERROR); 3386 3377 memcpy(save_block, cc->block, sizeof(struct cc_crypt_block)); 3387 3378 int found = 0; … … 3426 3417 3427 3418 if (!cc->prefix) 3428 cc->prefix = malloc( strlen(cl->account->usr)+20);3419 cc->prefix = malloc(&cc->prefix, strlen(cl->account->usr)+20, QUITERROR); 3429 3420 sprintf(cc->prefix, "cccam(s) %s: ", cl->account->usr); 3430 3421 … … 3628 3619 if (!cc) { 3629 3620 // init internals data struct 3630 cc = malloc(sizeof(struct cc_data)); 3631 if (cc == NULL) { 3632 cs_log("%s cannot allocate memory", rdr->label); 3633 return -1; 3634 } 3621 cc = cs_malloc(&cc, sizeof(struct cc_data), QUITERROR); 3635 3622 memset(cc, 0, sizeof(struct cc_data)); 3636 3623 cc->cards = ll_create_nolock(); … … 3659 3646 } 3660 3647 if (!cc->prefix) 3661 cc->prefix = malloc(strlen(cl->reader->label)+20);3648 cc->prefix = cs_malloc(&cc->prefix, strlen(cl->reader->label)+20, QUITERROR); 3662 3649 sprintf(cc->prefix, "cccam(r) %s: ", cl->reader->label); 3663 3650
Note:
See TracChangeset
for help on using the changeset viewer.