mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +03:00
- Fix MDEV-9279. Replacing exit(1) in yy_fatal_error by a longjmp.
modified: storage/connect/fmdlex.c modified: storage/connect/plgdbutl.cpp
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
#include <setjmp.h>
|
||||||
|
|
||||||
#define yyFlexLexer fmdfFlexLexer
|
#define yyFlexLexer fmdfFlexLexer
|
||||||
#define yy_create_buffer fmdf_create_buffer
|
#define yy_create_buffer fmdf_create_buffer
|
||||||
#define yy_delete_buffer fmdf_delete_buffer
|
#define yy_delete_buffer fmdf_delete_buffer
|
||||||
@@ -506,13 +508,16 @@ YY_MALLOC_DECL
|
|||||||
#define YY_BREAK break;
|
#define YY_BREAK break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static jmp_buf env;
|
||||||
|
|
||||||
YY_DECL
|
YY_DECL
|
||||||
{
|
{
|
||||||
register yy_state_type yy_current_state;
|
register yy_state_type yy_current_state;
|
||||||
register char *yy_cp, *yy_bp;
|
register char *yy_cp, *yy_bp;
|
||||||
register int yy_act;
|
register int yy_act;
|
||||||
|
|
||||||
|
if (setjmp(env))
|
||||||
|
return -1;
|
||||||
|
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
/* Flex parser to analyze date format and produce input and/or output */
|
/* Flex parser to analyze date format and produce input and/or output */
|
||||||
@@ -1316,7 +1321,7 @@ char msg[];
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
(void) fprintf( stderr, "%s\n", msg );
|
(void) fprintf( stderr, "%s\n", msg );
|
||||||
exit( 1 );
|
longjmp(env, 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -135,7 +135,7 @@ CREATE TABLE t1
|
|||||||
Year int(4) FIELD_FORMAT='DATEPUB',
|
Year int(4) FIELD_FORMAT='DATEPUB',
|
||||||
INDEX IX(ISBN)
|
INDEX IX(ISBN)
|
||||||
)
|
)
|
||||||
ENGINE=CONNECT TABLE_TYPE=JSON FILE_NAME='bib0.json' LRECL=350 OPTION_LIST='Pretty=0';
|
ENGINE=CONNECT TABLE_TYPE=JSON FILE_NAME='bib0.json' LRECL=320 OPTION_LIST='Pretty=0';
|
||||||
SHOW INDEX FROM t1;
|
SHOW INDEX FROM t1;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DESCRIBE SELECT * FROM t1 WHERE ISBN = '9782212090819';
|
DESCRIBE SELECT * FROM t1 WHERE ISBN = '9782212090819';
|
||||||
|
@@ -679,7 +679,8 @@ void PlugConvertConstant(PGLOBAL g, void* & value, short& type)
|
|||||||
/* non quoted blanks are not included in the output format. */
|
/* non quoted blanks are not included in the output format. */
|
||||||
/***********************************************************************/
|
/***********************************************************************/
|
||||||
PDTP MakeDateFormat(PGLOBAL g, PSZ dfmt, bool in, bool out, int flag)
|
PDTP MakeDateFormat(PGLOBAL g, PSZ dfmt, bool in, bool out, int flag)
|
||||||
{
|
{
|
||||||
|
int rc;
|
||||||
PDTP pdp = (PDTP)PlugSubAlloc(g, NULL, sizeof(DATPAR));
|
PDTP pdp = (PDTP)PlugSubAlloc(g, NULL, sizeof(DATPAR));
|
||||||
|
|
||||||
if (trace)
|
if (trace)
|
||||||
@@ -708,7 +709,7 @@ PDTP MakeDateFormat(PGLOBAL g, PSZ dfmt, bool in, bool out, int flag)
|
|||||||
pthread_mutex_lock(&parmut);
|
pthread_mutex_lock(&parmut);
|
||||||
#endif // !__WIN__
|
#endif // !__WIN__
|
||||||
#endif // THREAD
|
#endif // THREAD
|
||||||
/*int rc =*/ fmdflex(pdp);
|
rc = fmdflex(pdp);
|
||||||
#if defined(THREAD)
|
#if defined(THREAD)
|
||||||
#if defined(__WIN__)
|
#if defined(__WIN__)
|
||||||
LeaveCriticalSection((LPCRITICAL_SECTION)&parsec);
|
LeaveCriticalSection((LPCRITICAL_SECTION)&parsec);
|
||||||
@@ -718,9 +719,10 @@ PDTP MakeDateFormat(PGLOBAL g, PSZ dfmt, bool in, bool out, int flag)
|
|||||||
#endif // THREAD
|
#endif // THREAD
|
||||||
|
|
||||||
if (trace)
|
if (trace)
|
||||||
htrc("Done: in=%s out=%s\n", SVP(pdp->InFmt), SVP(pdp->OutFmt));
|
htrc("Done: in=%s out=%s rc=%d\n", SVP(pdp->InFmt), SVP(pdp->OutFmt), rc);
|
||||||
|
|
||||||
return pdp;
|
return pdp;
|
||||||
} // end of MakeDateFormat
|
} // end of MakeDateFormat
|
||||||
|
|
||||||
/***********************************************************************/
|
/***********************************************************************/
|
||||||
/* Extract the date from a formatted string according to format. */
|
/* Extract the date from a formatted string according to format. */
|
||||||
|
Reference in New Issue
Block a user