Changeset 8457


Ignore:
Timestamp:
03/02/13 23:09:06 (9 years ago)
Author:
gf
Message:

newcamd: Add paranoid checks for per port newcamd data.

Better safe than sorry.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/module-newcamd.c

    r8456 r8457  
    139139 struct s_client *cl = cur_client();
    140140
    141  if(1 != cl->ftab.nfilts || !cl->sidtabs.no)
     141 if(1 != cl->ftab.nfilts || !cl->sidtabs.no || !cfg.ncd_ptab.ports[cl->port_idx].ncd)
    142142 {
    143143   cs_log("SID list will not be send to mgcamd client.");
     
    591591
    592592  port_idx = cl->port_idx;
     593  if (!cfg.ncd_ptab.ports[port_idx].ncd)
     594    return filt;
    593595  psfilt = &cfg.ncd_ptab.ports[port_idx].ncd->ncd_ftab.filts[0];
    594596
     
    809811    // check for non ready reader and reject client
    810812    for (rdr=first_active_reader; rdr ; rdr=rdr->next) {
     813      if (!cfg.ncd_ptab.ports[cl->port_idx].ncd)
     814        continue;
    811815      if(rdr->caid==cfg.ncd_ptab.ports[cl->port_idx].ncd->ncd_ftab.filts[0].caid) {
    812816        if(rdr->card_status == CARD_NEED_INIT) {
     
    822826    while ((rdr = ll_iter_next(&itr))) {
    823827      int32_t n;
     828      if (!cfg.ncd_ptab.ports[cl->port_idx].ncd)
     829        continue;
    824830      for (n=0;n<cfg.ncd_ptab.ports[cl->port_idx].ncd->ncd_ftab.filts[0].nprids;n++) {
    825831        if (emm_reader_match(rdr, cfg.ncd_ptab.ports[cl->port_idx].ncd->ncd_ftab.filts[0].caid, cfg.ncd_ptab.ports[cl->port_idx].ncd->ncd_ftab.filts[0].prids[n])) {
     
    10521058  if (!er->caid) {
    10531059      pi = cl->port_idx;
    1054       if( cfg.ncd_ptab.nports && cfg.ncd_ptab.nports >= pi)
     1060      if( cfg.ncd_ptab.nports && cfg.ncd_ptab.nports >= pi && cfg.ncd_ptab.ports[pi].ncd)
    10551061          er->caid=cfg.ncd_ptab.ports[pi].ncd->ncd_ftab.filts[0].caid;
    10561062  }
     
    11911197    cs_log("client connected to %d port", cfg.ncd_ptab.ports[client->port_idx].s_port);
    11921198
    1193     if (cfg.ncd_ptab.ports[client->port_idx].ncd->ncd_key_is_set) {
     1199    if (cfg.ncd_ptab.ports[client->port_idx].ncd && cfg.ncd_ptab.ports[client->port_idx].ncd->ncd_key_is_set) {
    11941200        //port has a des key specified
    11951201        res = newcamd_auth_client(client->ip, cfg.ncd_ptab.ports[client->port_idx].ncd->ncd_key);
Note: See TracChangeset for help on using the changeset viewer.