IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 9, 2021, 4:44:03 PM (5 years ago)
Author:
eugene
Message:

disallow unrestricted queries and add -all option to definebyquery commands and others which would generate very long results if allowed: camtool, chiptool, difftool, dqstatstool, faketool, pubtool, warptool

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/camtool.c

    r41072 r41549  
    145145
    146146    // use psDBGenerateWhereSQL because the SQL yields an intermediate table
    147     if (where && psListLength(where->list)) {
     147    if (psListLength(where->list)) {
    148148        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    149149        psStringAppend(&query, " AND %s", whereClause);
     
    300300    PS_ASSERT_PTR_NON_NULL(config, false);
    301301
     302    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     303    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     304    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
     305
    302306    psMetadata *where = psMetadataAlloc();
    303307    pxcamGetSearchArgs (config, where);
     
    306310    PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "==");
    307311
    308     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    309     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    310 
    311312    psString query = pxDataGet("camtool_pendingexp.sql");
    312313    if (!query) {
     
    320321        psStringAppend(&query, " AND %s", whereClause);
    321322        psFree(whereClause);
     323    } else {
     324      if (!all) {
     325        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
     326        return false;
     327      }
    322328    }
    323329    psFree(where);
     
    375381
    376382    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     383    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    377384
    378385    psString query = pxDataGet("camtool_find_pendingimfile.sql");
     
    387394        psStringAppend(&query, " AND %s", whereClause);
    388395        psFree(whereClause);
     396    } else {
     397      if (!all) {
     398        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
     399        return false;
     400      }
    389401    }
    390402    psFree(where);
     
    11351147    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    11361148    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1149    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    11371150
    11381151    psMetadata *where = psMetadataAlloc();
     
    11451158    }
    11461159
    1147     if (where && psListLength(where->list)) {
     1160    if (psListLength(where->list)) {
    11481161        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    11491162        psStringAppend(&query, " AND %s", whereClause);
    11501163        psFree(whereClause);
     1164    } else {
     1165      if (!all) {
     1166        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
     1167        return false;
     1168      }
    11511169    }
    11521170    psFree(where);
     
    11971215    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
    11981216    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1217    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    11991218
    12001219    psMetadata *where = psMetadataAlloc();
     
    12101229    }
    12111230
    1212     if (where && psListLength(where->list)) {
     1231    if (psListLength(where->list)) {
    12131232        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    12141233        psStringAppend(&query, " AND %s", whereClause);
    12151234        psFree(whereClause);
     1235    } else {
     1236      if (!all) {
     1237        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
     1238        return false;
     1239      }
    12161240    }
    12171241    psFree(where);
Note: See TracChangeset for help on using the changeset viewer.