Skip to content

Instantly share code, notes, and snippets.

@GiuseppeChillemi
Last active April 5, 2026 09:13
Show Gist options
  • Select an option

  • Save GiuseppeChillemi/7226dfc6c0b87495bd1977b313581e5c to your computer and use it in GitHub Desktop.

Select an option

Save GiuseppeChillemi/7226dfc6c0b87495bd1977b313581e5c to your computer and use it in GitHub Desktop.
Code to generate a crash on Red-ODBC
Red [
Title: "Code to generate an Access Violation"
Note: "Below you will find the DB creation script, tested on SQL Server 2016"
]
connection: open make port! [
scheme: 'odbc
target: "driver={SQL Server};server=192.168.x.x\SQLXXXX;database=mytest;uid=someid;pwd=somepw;AutoTranslate=yes"
]
statement: open connection
insert statement "select * from test_table"
mytable: copy statement
;copy statement
probe length? mytable
probe mytable
---- QUERY TO CREATE THE DB ----
create database mytest;
use mytest
;drop table test_table
create table test_table
(
Id_AR int NOT NULL,
Cd_AR varchar(20) NOT NULL,
Descrizione varchar(80) NOT NULL,
DescrizioneBreve varchar(40) NOT NULL,
VBDescrizione varchar(30) NOT NULL,
Note_AR varchar(max) NOT NULL,
Cd_ARGruppo1 char(3) NOT NULL,
Cd_ARGruppo2 char(3) NOT NULL,
Cd_ARGruppo3 char(3) NOT NULL,
Cd_ARClasse1 char(3) NOT NULL,
Cd_ARClasse2 char(3) NOT NULL,
Cd_ARClasse3 char(3) NOT NULL,
Cd_VbReparto char(2) NOT NULL,
Cd_Aliquota_A char(3) NOT NULL,
Cd_Aliquota_V char(3) NOT NULL,
Cd_CGConto_VI char(12) NOT NULL,
Cd_CGConto_VE char(12) NOT NULL,
Cd_CGConto_AI char(12) NOT NULL,
Cd_CGConto_AE char(12) NOT NULL,
Cd_CAVda_VI char(12) NOT NULL,
Cd_CAVda_VE char(12) NOT NULL,
Cd_CAVda_AI char(12) NOT NULL,
Cd_CAVda_AE char(12) NOT NULL,
Cd_ARStato char(3) NOT NULL,
Cd_ARMarca varchar(20) NOT NULL,
Cd_ARNomenclatura char(8) NOT NULL,
Cd_ARPrdClasse char(5) NOT NULL,
Id_ARCategoria int NOT NULL,
Cd_IntraServizio char(6) NOT NULL,
Modello varchar(20) NOT NULL,
Sconto varchar(10) NOT NULL,
Provvigione varchar(10) NOT NULL,
Ricarica varchar(15) NOT NULL,
ScortaMinima numeric NOT NULL,
ScortaMassima numeric NOT NULL,
LottoMinimo numeric NOT NULL,
LottoRiordino numeric NOT NULL,
PesoLordo numeric NOT NULL,
PesoNetto numeric NOT NULL,
PesoFattore numeric NOT NULL,
PesoLordoMks numeric NOT NULL,
PesoNettoMks numeric NOT NULL,
Altezza numeric NOT NULL,
Lunghezza numeric NOT NULL,
Larghezza numeric NOT NULL,
DimensioniFattore numeric NOT NULL,
AltezzaMks numeric NOT NULL,
LunghezzaMks numeric NOT NULL,
LarghezzaMks numeric NOT NULL,
VolumeMks numeric NOT NULL,
CostoStandard numeric NOT NULL,
ClasseAbc char(1) NOT NULL,
TipoValorizzazione tinyint NOT NULL,
Fittizio bit NOT NULL,
Obsoleto bit NOT NULL,
DBKit bit NOT NULL,
NoInventario bit NOT NULL,
NoGiornale bit NOT NULL,
DBFantasma bit NOT NULL,
MG_LottoObbligatorio bit NOT NULL,
MG_MatricolaObbligatoria bit NOT NULL,
MG_GiacenzaNonNegativa bit NOT NULL,
TipoGestComm tinyint NOT NULL,
MrpGiorniRiordino smallint NOT NULL,
MrpProduzioneMassima numeric NOT NULL,
MrpIncludi bit NOT NULL,
MrpGiorniCopertura smallint NOT NULL,
MrpResa smallint NOT NULL,
MrpLottoRiordino bit NOT NULL,
MrpLottoMinimo bit NOT NULL,
MrpPuntoRiordino tinyint NOT NULL,
MrpIgnoraDistinta bit NOT NULL,
WebB2CPubblica bit NOT NULL,
WebB2BPubblica bit NOT NULL,
WebDescrizione varchar(80) NOT NULL,
WebNote_AR varchar(max) NOT NULL,
WebInfoLink varchar(128) NOT NULL,
WebGiacenza numeric NOT NULL,
AmsManaged bit NOT NULL,
NoteOfferta varchar(max) NOT NULL,
Attributi xml NOT NULL,
NoteXML xml NOT NULL,
UserIns varchar(48) NOT NULL,
UserUpd varchar(48) NOT NULL,
TimeIns smalldatetime NOT NULL,
TimeUpd smalldatetime NOT NULL,
Ts timestamp NOT NULL,
IntraTipo char(1) NOT NULL,
xArt62_Tipologia char(1) NOT NULL,
xBowAR bit NOT NULL,
xCd_BowGruppo1 varchar(3) NOT NULL,
xCd_BowGruppo2 varchar(2) NOT NULL,
xCd_BowGruppo3 varchar(2) NOT NULL,
xCd_BowClasse1 varchar(3) NOT NULL,
xCd_BowClasse2 varchar(2) NOT NULL,
xCd_BowClasse3 varchar(2) NOT NULL,
xBowNoteAR text NOT NULL,
xBowNote2AR text NOT NULL,
Cd_ARMisura char(2) NOT NULL,
FTE_CodiceTipo varchar(35) NOT NULL,
FTE_CodiceValore varchar(35) NOT NULL,
Cd_ARClasse12 char(6) NOT NULL,
Cd_ARClasse123 char(9) NOT NULL,
Cd_ARGruppo12 char(6) NOT NULL,
Cd_ARGruppo123 char(9) NOT NULL,
Cd_Nazione_Origine char(2) NOT NULL,
ExtraInfo xml NOT NULL,
xCreaMatricola bit NOT NULL,
xDurataGaranziaAcquisto smallint NOT NULL,
xDurataGaranziaVendita smallint NOT NULL,
xValoreGaranzia numeric NOT NULL,
xAttivitaInGaranzia bit NOT NULL,
xMaterialeInGaranzia bit NOT NULL,
xSpesaInGaranzia bit NOT NULL,
Cd_Provincia_Origine char(3) NOT NULL,
MrpAggiornaCostoDistinta bit NOT NULL,
MrpForzaExpDistinta bit NOT NULL
);
GO
DECLARE @MyCounter as INT
SET @MyCounter = 1
WHILE @MyCounter < 20000
BEGIN
insert into test_table
(
Id_AR,
Cd_AR,
Descrizione,
DescrizioneBreve,
VBDescrizione,
Note_AR,
Cd_ARGruppo1,
Cd_ARGruppo2,
Cd_ARGruppo3,
Cd_ARClasse1,
Cd_ARClasse2,
Cd_ARClasse3,
Cd_VbReparto,
Cd_Aliquota_A,
Cd_Aliquota_V,
Cd_CGConto_VI,
Cd_CGConto_VE,
Cd_CGConto_AI,
Cd_CGConto_AE,
Cd_CAVda_VI,
Cd_CAVda_VE,
Cd_CAVda_AI,
Cd_CAVda_AE,
Cd_ARStato,
Cd_ARMarca,
Cd_ARNomenclatura,
Cd_ARPrdClasse,
Id_ARCategoria,
Cd_IntraServizio,
Modello,
Sconto,
Provvigione,
Ricarica,
ScortaMinima,
ScortaMassima,
LottoMinimo,
LottoRiordino,
PesoLordo,
PesoNetto,
PesoFattore,
PesoLordoMks,
PesoNettoMks,
Altezza,
Lunghezza,
Larghezza,
DimensioniFattore,
AltezzaMks,
LunghezzaMks,
LarghezzaMks,
VolumeMks,
CostoStandard,
ClasseAbc,
TipoValorizzazione,
Fittizio,
Obsoleto,
DBKit,
NoInventario,
NoGiornale,
DBFantasma,
MG_LottoObbligatorio,
MG_MatricolaObbligatoria,
MG_GiacenzaNonNegativa,
TipoGestComm,
MrpGiorniRiordino,
MrpProduzioneMassima,
MrpIncludi,
MrpGiorniCopertura,
MrpResa,
MrpLottoRiordino,
MrpLottoMinimo,
MrpPuntoRiordino,
MrpIgnoraDistinta,
WebB2CPubblica,
WebB2BPubblica,
WebDescrizione,
WebNote_AR,
WebInfoLink,
WebGiacenza,
AmsManaged,
NoteOfferta,
Attributi,
NoteXML,
UserIns,
UserUpd,
TimeIns,
TimeUpd,
IntraTipo,
xArt62_Tipologia,
xBowAR,
xCd_BowGruppo1,
xCd_BowGruppo2,
xCd_BowGruppo3,
xCd_BowClasse1,
xCd_BowClasse2,
xCd_BowClasse3,
xBowNoteAR,
xBowNote2AR,
Cd_ARMisura,
FTE_CodiceTipo,
FTE_CodiceValore,
Cd_ARClasse12,
Cd_ARClasse123,
Cd_ARGruppo12,
Cd_ARGruppo123,
Cd_Nazione_Origine,
ExtraInfo,
xCreaMatricola,
xDurataGaranziaAcquisto,
xDurataGaranziaVendita,
xValoreGaranzia,
xAttivitaInGaranzia,
xMaterialeInGaranzia,
xSpesaInGaranzia,
Cd_Provincia_Origine,
MrpAggiornaCostoDistinta,
MrpForzaExpDistinta
)
values
(
10,
'aa',
'aa',
'aa',
'aa',
'aa',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'c',
'aa',
'c',
'c',
10,
'c',
'aa',
'aa',
'aa',
'aa',
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'c',
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
'aa',
'aa',
'aa',
1,
1,
'aa',
'',
'',
'aa',
'aa',
'',
'',
'c',
'c',
1,
'aa',
'aa',
'aa',
'aa',
'aa',
'aa',
'b',
'b',
'c',
'aa',
'aa',
'c',
'c',
'c',
'c',
'c',
'',
1,
1,
1,
1,
1,
1,
1,
'c',
1,
1
)
set @MyCounter = @MyCounter + 1;
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment