~ubuntu-branches/ubuntu/utopic/suricata/utopic

« back to all changes in this revision

Viewing changes to src/detect-ftpbounce.c

  • Committer: Package Import Robot
  • Author(s): Pierre Chifflier
  • Date: 2011-11-17 23:20:51 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20111117232051-wlo0g2fyinx0zi25
Tags: 1.1-1
* Imported Upstream version 1.1
* Add instructions on getting new rules using oinkmaster
* Add Recommends on oinkmaster
* Move snort-rules-default to Recommends

Show diffs side-by-side

added added

removed removed

Lines of Context:
208
208
    if (!(PKT_IS_TCP(p)))
209
209
        return 0;
210
210
 
211
 
    SigMatch *sm = SigMatchGetLastSM(s->pmatch_tail, DETECT_CONTENT);
 
211
    SigMatch *sm = SigMatchGetLastSM(s->sm_lists_tail[DETECT_SM_LIST_PMATCH], DETECT_CONTENT);
212
212
    if (sm == NULL)
213
213
        return 0;
214
214
 
297
297
 
298
298
    /* ftpbounce doesn't accept options so the str is NULL */
299
299
    res = !DetectFtpbounceSetup(de_ctx, s, NULL);
300
 
    res &= s->amatch != NULL && s->amatch->type & DETECT_FTPBOUNCE;
 
300
    res &= s->sm_lists[DETECT_SM_LIST_AMATCH] != NULL && s->sm_lists[DETECT_SM_LIST_AMATCH]->type & DETECT_FTPBOUNCE;
301
301
 
302
302
    SigFree(s);
303
303
    return res;
343
343
    p->flow = &f;
344
344
    p->flowflags |= FLOW_PKT_TOSERVER;
345
345
    p->flowflags |= FLOW_PKT_ESTABLISHED;
 
346
    p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST;
346
347
    f.alproto = ALPROTO_FTP;
347
348
 
348
349
    StreamTcpInitConfig(TRUE);
448
449
 
449
450
    TcpSession ssn;
450
451
    Flow f;
451
 
    Packet p;
 
452
    Packet *p = SCMalloc(SIZE_OF_PACKET);
 
453
    if (p == NULL)
 
454
        return 0;
452
455
    Signature *s = NULL;
453
456
    ThreadVars th_v;
454
457
    DetectEngineThreadCtx *det_ctx = NULL;
455
458
 
456
459
    memset(&th_v, 0, sizeof(th_v));
457
 
    memset(&p, 0, sizeof(p));
 
460
    memset(p, 0, SIZE_OF_PACKET);
 
461
    p->pkt = (uint8_t *)(p + 1);
458
462
    memset(&f, 0, sizeof(f));
459
463
    memset(&ssn, 0, sizeof(ssn));
460
464
 
461
 
    p.src.family = AF_INET;
462
 
    p.dst.family = AF_INET;
463
 
    p.src.addr_data32[0] = 0x04030201;
464
 
    p.payload = NULL;
465
 
    p.payload_len = 0;
466
 
    p.proto = IPPROTO_TCP;
 
465
    p->src.family = AF_INET;
 
466
    p->dst.family = AF_INET;
 
467
    p->src.addr_data32[0] = 0x04030201;
 
468
    p->payload = NULL;
 
469
    p->payload_len = 0;
 
470
    p->proto = IPPROTO_TCP;
467
471
 
468
472
    FLOW_INITIALIZE(&f);
469
473
    f.src.address.address_un_data32[0]=0x04030201;
470
474
    f.protoctx =(void *)&ssn;
471
475
 
472
 
    p.flow = &f;
473
 
    p.flowflags |= FLOW_PKT_TOSERVER;
474
 
    p.flowflags |= FLOW_PKT_ESTABLISHED;
 
476
    p->flow = &f;
 
477
    p->flowflags |= FLOW_PKT_TOSERVER;
 
478
    p->flowflags |= FLOW_PKT_ESTABLISHED;
 
479
    p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST;
475
480
    f.alproto = ALPROTO_FTP;
476
481
 
477
482
    StreamTcpInitConfig(TRUE);
535
540
    }
536
541
 
537
542
    /* do detect */
538
 
    SigMatchSignatures(&th_v, de_ctx, det_ctx, &p);
 
543
    SigMatchSignatures(&th_v, de_ctx, det_ctx, p);
539
544
 
540
545
    /* It should not match */
541
 
    if (!(PacketAlertCheck(&p, 1))) {
 
546
    if (!(PacketAlertCheck(p, 1))) {
542
547
        result = 1;
543
548
    } else {
544
549
        SCLogDebug("It should not match here!");
554
559
    FlowL7DataPtrFree(&f);
555
560
    StreamTcpFreeConfig(TRUE);
556
561
    FLOW_DESTROY(&f);
 
562
    SCFree(p);
557
563
    return result;
558
564
}
559
565