IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 29, 2005, 1:12:44 PM (21 years ago)
Author:
jhoblitt
Message:

add rigorous parameter validation to most functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/nebclient/src/nebclient.c

    r4660 r4671  
    44 * Copyright (C) 2005  Joshua Hoblitt
    55 *
    6  * $Id: nebclient.c,v 1.35 2005-07-29 02:31:56 jhoblitt Exp $
     6 * $Id: nebclient.c,v 1.36 2005-07-29 23:12:44 jhoblitt Exp $
    77 */
    88
     
    3131    p_nebSetErr(__FILE__, __LINE__, __func__, server,__VA_ARGS__)
    3232
     33// this is a slightly more useful error message than returned by assert()
     34#define REQUIRE_SERVER \
     35    if (!server) { \
     36        fprintf(stderr, "parameter 'server' may not be NULL"); \
     37        abort(); \
     38    }
     39
    3340static void p_nebSetErr(const char * filename, unsigned long lineno, const char *function, nebServer *server, const char *format, ...);
    3441static void nebSetServerErr(nebServer *server);
     
    6370void nebServerFree(nebServer *server)
    6471{
     72    if (!server) {
     73        return;
     74    }
     75
    6576    soap_end(server->soap); // remove deserialized data and clean up
    6677    soap_done(server->soap); // detach the gSOAP environment
     
    7889    int             file;
    7990
     91    REQUIRE_SERVER;
     92
    8093    if (!key) {
    8194        nebSetErr(server, "parameter 'key' may not be NULL");
     
    122135    char            *filename;
    123136    int             sourceFH, destFH;
     137
     138    REQUIRE_SERVER;
     139
     140    if (!key) {
     141        nebSetErr(server, "parameter 'key' may not be NULL");
     142
     143        return false;
     144    }
    124145
    125146    if (soap_call_ns1__replicate_USCOREobject(server->soap, server->endpoint,
     
    184205    nebObjectInstances *locations;
    185206
     207    REQUIRE_SERVER;
     208
     209    if (!key) {
     210        nebSetErr(server, "parameter 'key' may not be NULL");
     211
     212        return false;
     213    }
     214
    186215    locations = nebFindInstances(server, key, NULL);
    187216    if (!locations) {
     
    207236    char            *type;
    208237    int             response;
     238
     239    REQUIRE_SERVER;
     240
     241    if (!key) {
     242        nebSetErr(server, "parameter 'key' may not be NULL");
     243
     244        return false;
     245    }
    209246
    210247    type = flag == NEB_READ ? "read" : "write";
     
    237274    int             response;
    238275
     276    REQUIRE_SERVER;
     277
     278    if (!key) {
     279        nebSetErr(server, "parameter 'key' may not be NULL");
     280
     281        return false;
     282    }
     283
    239284    type = flag == NEB_READ ? "read" : "write";
    240285
     
    261306    char            **resultArray;
    262307    nebObjectInstances *locations = NULL;
     308
     309    REQUIRE_SERVER;
     310
     311    if (!key) {
     312        nebSetErr(server, "parameter 'key' may not be NULL");
     313
     314        return NULL;
     315    }
    263316
    264317    // FIXME is this leaking memory when response goes out of scope?  the gsoap
     
    293346void nebObjectInstancesFree(nebObjectInstances *locations)
    294347{
    295     if (locations) {
    296         for (int i = 0; i < locations->n; i++) {
    297             nebFree(locations->URI[i]);
    298         }
    299 
    300         nebFree(locations);
     348    if (!locations) {
     349        return;
     350    }
     351
     352    for (int i = 0; i < locations->n; i++) {
     353        nebFree(locations->URI[i]);
    301354    }
    302355}
     
    306359    nebObjectInstances *locations;
    307360    char            *filename;
     361
     362    REQUIRE_SERVER;
     363
     364    if (!key) {
     365        nebSetErr(server, "parameter 'key' may not be NULL");
     366
     367        return NULL;
     368    }
    308369   
    309370    locations = nebFindInstances(server, key, NULL);
     
    331392    char            *filename;
    332393    int             fh;
     394
     395    REQUIRE_SERVER;
     396
     397    if (!key) {
     398        nebSetErr(server, "parameter 'key' may not be NULL");
     399
     400        return -1;
     401    }
    333402
    334403    locations = nebFindInstances(server, key, NULL);
     
    375444    nebObjectInstances *locations;
    376445
     446    REQUIRE_SERVER;
     447
     448    if (!key) {
     449        nebSetErr(server, "parameter 'key' may not be NULL");
     450
     451        return false;
     452    }
     453
    377454    locations = nebFindInstances(server, key, NULL);
    378455    if (!locations) {
     
    401478    int             destFH;
    402479
     480    REQUIRE_SERVER;
     481
     482    if (!key) {
     483        nebSetErr(server, "parameter 'key' may not be NULL");
     484
     485        return false;
     486    }
     487
     488    if (!newKey) {
     489        nebSetErr(server, "parameter 'newKey' may not be NULL");
     490
     491        return false;
     492    }
     493
    403494    sourceFH = nebOpen(server, (char *)key, NEB_READ);
    404495    if (sourceFH < 0) {
     
    434525bool nebMove(nebServer *server, const char *key, const char *newKey)
    435526{
     527    REQUIRE_SERVER;
     528
     529    if (!key) {
     530        nebSetErr(server, "parameter 'key' may not be NULL");
     531
     532        return false;
     533    }
     534
     535    if (!newKey) {
     536        nebSetErr(server, "parameter 'newKey' may not be NULL");
     537
     538        return false;
     539    }
     540
    436541    if (!nebCopy(server, key, newKey)) {
    437542        return false;
     
    450555    char            *filename;
    451556    bool            status;
     557
     558    REQUIRE_SERVER;
     559
     560    if (!URI) {
     561        nebSetErr(server, "parameter 'URI' may not be NULL");
     562
     563        return false;
     564    }
    452565
    453566    if (!nebParseURI(server, URI, &filename)) {
     
    481594    int             resultElements = 0;
    482595    char            **resultArray = NULL;
     596
     597    REQUIRE_SERVER;
     598
     599    if (!key) {
     600        nebSetErr(server, "parameter 'key' may not be NULL");
     601
     602        return NULL;
     603    }
    483604
    484605    stat = xmalloc(sizeof(nebObjectStat));
     
    576697    const char      **string;
    577698
     699    REQUIRE_SERVER;
     700
    578701    code   = soap_faultcode(server->soap);
    579702    string = soap_faultstring(server->soap);
     
    587710    int             destFH;
    588711    off_t           bytesCopied;
     712
     713    REQUIRE_SERVER;
    589714
    590715    sourceFH = open(source, O_RDONLY);
     
    629754    char            writeBuf[64 * 1024];
    630755    struct stat     sourceStat;
     756
     757    REQUIRE_SERVER;
    631758
    632759    if(fstat(sourceFH, &sourceStat)) {
     
    683810    size_t          filename_size;
    684811
     812    REQUIRE_SERVER;
     813
    685814    if (!URI) {
    686815        return 0;
     
    723852static bool nebNukeFile(nebServer *server, const char *filename)
    724853{
     854    REQUIRE_SERVER;
     855
     856    if (!filename) {
     857        nebSetErr(server, "parameter 'filename' may not be NULL");
     858
     859        return false;
     860    }
     861
    725862    if (unlink(filename) < 0) {
    726863        nebSetErr(server, "unlink: %s", strerror(errno));
Note: See TracChangeset for help on using the changeset viewer.