Changeset 1599:b3d6c00c911e


Ignore:
Timestamp:
03/02/10 06:28:22 (5 months ago)
Author:
Howard Butler <hobu.inc@…>
Branch:
default
Message:

support using files for sql injections for pre-sql, post-sql, and post-block-sql

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/las2oci.cpp

    r1598 r1599  
    8383 
    8484 
    85 std::istream* OpenInput(std::string filename)  
    86 { 
    87     std::ios::openmode const mode = std::ios::in | std::ios::binary; 
     85std::istream* OpenInput(std::string filename, bool bEnd)  
     86{ 
     87    std::ios::openmode mode = std::ios::in | std::ios::binary; 
     88    if (bEnd == true) { 
     89        mode = mode | std::ios::ate; 
     90    } 
    8891    std::istream* istrm; 
    8992    if (compare_no_case(filename.c_str(),"STDIN",5) == 0) 
     
    103106    } 
    104107    return istrm; 
     108} 
     109 
     110std::string ReadSQLData(char* filename) 
     111{ 
     112    std::istream* infile = OpenInput(filename, true); 
     113    ifstream::pos_type size; 
     114    char* data; 
     115    if (infile->good()){ 
     116        size = infile->tellg(); 
     117        data = new char [size]; 
     118        infile->seekg (0, ios::beg); 
     119        infile->read (data, size); 
     120        // infile->close(); 
     121 
     122        std::string output = std::string(data); 
     123        delete[] data; 
     124        delete infile; 
     125        return output; 
     126    }  
     127    else  
     128    {    
     129        delete infile; 
     130        return std::string(""); 
     131    } 
    105132} 
    106133 
     
    13491376        { 
    13501377            i++; 
    1351             pre_sql = std::string(argv[i]); 
     1378            try { 
     1379                pre_sql = ReadSQLData(argv[i]); 
     1380            } catch (std::runtime_error const& e) { 
     1381                pre_sql = std::string(argv[i]); 
     1382            } 
    13521383        } 
    13531384        else if (   strcmp(argv[i],"--post-sql") == 0  || 
     
    13561387        { 
    13571388            i++; 
    1358             post_sql = std::string(argv[i]); 
     1389            try { 
     1390                post_sql = ReadSQLData(argv[i]); 
     1391            } catch (std::runtime_error const& e) { 
     1392                post_sql = std::string(argv[i]); 
     1393            } 
    13591394        } 
    13601395        else if (   strcmp(argv[i],"--pre-block-sql") == 0  || 
     
    13631398        { 
    13641399            i++; 
    1365             pre_block_sql = std::string(argv[i]); 
     1400            try { 
     1401                pre_block_sql = ReadSQLData(argv[i]); 
     1402            } catch (std::runtime_error const& e) { 
     1403                pre_block_sql = std::string(argv[i]); 
     1404            } 
    13661405        } 
    13671406        else if (   strcmp(argv[i],"--aux-columns") == 0  || 
     
    15191558    std::istream* istrm; 
    15201559    try { 
    1521             istrm = OpenInput(input); 
     1560            istrm = OpenInput(input, false); 
    15221561    } catch (std::exception const& e) 
    15231562    { 
     
    15801619        os << input << ".kdx" ; 
    15811620         
    1582         std::istream* kdx = OpenInput(os.str()); 
     1621        std::istream* kdx = OpenInput(os.str(), false); 
    15831622        query = new LASQuery(*kdx); 
    15841623    } 
     
    15891628     
    15901629    std::istream* istrm2; 
    1591     istrm2 = OpenInput(input); 
     1630    istrm2 = OpenInput(input, false); 
    15921631    LASReader* reader2 = new LASReader(*istrm2); 
    15931632     
Note: See TracChangeset for help on using the changeset viewer.