UDF Plugin will crash Firebird at linux 
----------------------------------------

                 Key: CORE-6443
                 URL: http://tracker.firebirdsql.org/browse/CORE-6443
             Project: Firebird Core
          Issue Type: Bug
    Affects Versions: 3.0.7
         Environment: Linux debian 10
            Reporter: Sorien


Windows works fine

DECLARE EXTERNAL FUNCTION FILE_STORE
    BLOB,
    VARCHAR(300) BY DESCRIPTOR
RETURNS 
        INTEGER BY VALUE
ENTRY_POINT 'file_store' MODULE_NAME 'storage';

udf part

bool isnull(const paramdsc* v)
{
        return !v || !v->dsc_address || (v->dsc_flags & DSC_null);
}

extern "C" FB_DLL_EXPORT int file_store(blobcallback* sourceBlob, const 
paramdsc* sFileName)
{
        if (isnull(sFileName)) { // <- will crash here 
                return -1;
        }

        ISC_UCHAR* text = 0;
        int len = get_any_string_type(sFileName, text);


        if (!sourceBlob->blob_handle) {
                return -1;
        }

        char* name = null_terminated_string(text, len);

        makePath(splitFilename(name));

        FILE *fp;
        ISC_UCHAR *pbuffer;
        ISC_USHORT length, actual_length;

        fp = fopen(name, "w");
        if (fp == NULL) {
                free(name);
                return errno;
        }

        length = sourceBlob->blob_max_segment + 1L;
        pbuffer = (ISC_UCHAR *)malloc(length);

        while ((*sourceBlob->blob_get_segment) (sourceBlob->blob_handle, 
pbuffer, length, &actual_length)) {
                if (fwrite(pbuffer, actual_length, 1, fp) != 1) {
                        return errno;
                }
        }

        free(name);
        fclose(fp);
        free(pbuffer);
        return 0;
}

it srashes also when i try to replace VARCHAR(300) BY DESCRIPTOR with CString

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to