Comment 7 for bug 267006

Revision history for this message
Kuzemko Aleksandr (kuzemkoa-rambler) wrote :

I dont undenstand! When I use such function:
static char* read_file(const char *fname) {
    Blob blob;
    size_t data_size;
    char *dib;
    try {
        Image image;
// image.density("10");
// image.ping(fname);
// cout << "Image number of page "<< image.fileSize()/(image.columns()*image.rows()) << "\n";
// image.density("300");
        int i=0;
        char* temp="file_venugopal.pdf[1]";
// sprintf(temp, "%s[%d]",fname, i );
        cout << "Now we form file name"<< temp<<".\n";
        image.read(temp);//"file_venugopal.pdf[1]");
// image.magick( "BMP" );
// image.depth(24);
// image.monochrome(1);
        // Write to BLOB in BMP format
        image.write(&blob, "DIB");
        cout << "Write BLOB" << "\n";
        image.write("out.bmp");
    } catch(Exception &error_) {
        cerr << error_.what() << "\n";
        return NULL;
    }
    data_size = blob.length();
    dib = new char[data_size];
    memcpy(dib, blob.data(), data_size);
    return dib;
}
it recognize second page of file_venugopal.pdf.
But when I use
...
        int i=0;
        char* temp;
        sprintf(temp, "%s[%d]",fname, i );
        cout << "Now we form file name"<< temp<<".\n";
...
I get Segfault error.

Where Is my mistake?