Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hyperscan for openSUSE:Factory checked in at 2023-05-28 19:23:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hyperscan (Old) and /work/SRC/openSUSE:Factory/.hyperscan.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyperscan" Sun May 28 19:23:50 2023 rev:11 rq:1089429 version:5.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/hyperscan/hyperscan.changes 2023-02-23 16:54:30.341518316 +0100 +++ /work/SRC/openSUSE:Factory/.hyperscan.new.1533/hyperscan.changes 2023-05-28 19:24:15.089465165 +0200 @@ -1,0 +2,12 @@ +Sun May 28 09:29:08 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 5.4.2: + * Roll back bugfix for github issue #350: Besides using scratch + for corresponding database, Hyperscan also allows user to use + larger scratch allocated for another database. Users can + leverage this property to achieve safe scratch usage in + multi-database scenarios. Behaviors beyond these are + discouraged and results are undefined. + * Fix hsdump issue due to invalid nfa type. + +------------------------------------------------------------------- Old: ---- hyperscan-5.4.1.tar.gz New: ---- hyperscan-5.4.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hyperscan.spec ++++++ --- /var/tmp/diff_new_pack.HrTa98/_old 2023-05-28 19:24:15.449467307 +0200 +++ /var/tmp/diff_new_pack.HrTa98/_new 2023-05-28 19:24:15.453467331 +0200 @@ -19,7 +19,7 @@ %define _lto_cflags %{nil} %define sover 5 Name: hyperscan -Version: 5.4.1 +Version: 5.4.2 Release: 0 Summary: Regular expression matching library License: BSD-3-Clause ++++++ hyperscan-5.4.1.tar.gz -> hyperscan-5.4.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/CHANGELOG.md new/hyperscan-5.4.2/CHANGELOG.md --- old/hyperscan-5.4.1/CHANGELOG.md 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/CHANGELOG.md 2023-04-19 11:34:39.000000000 +0200 @@ -2,6 +2,14 @@ This is a list of notable changes to Hyperscan, in reverse chronological order. +## [5.4.2] 2023-04-19 +- Roll back bugfix for github issue #350: Besides using scratch for + corresponding database, Hyperscan also allows user to use larger scratch + allocated for another database. Users can leverage this property to achieve + safe scratch usage in multi-database scenarios. Behaviors beyond these are + discouraged and results are undefined. +- Fix hsdump issue due to invalid nfa type. + ## [5.4.1] 2023-02-20 - The Intel Hyperscan team is pleased to provide a bug fix release to our open source library. Intel also maintains an upgraded version available through your Intel sales representative. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/CMakeLists.txt new/hyperscan-5.4.2/CMakeLists.txt --- old/hyperscan-5.4.1/CMakeLists.txt 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/CMakeLists.txt 2023-04-19 11:34:39.000000000 +0200 @@ -3,7 +3,7 @@ set (HS_MAJOR_VERSION 5) set (HS_MINOR_VERSION 4) -set (HS_PATCH_VERSION 1) +set (HS_PATCH_VERSION 2) set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION}) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/src/hs.h new/hyperscan-5.4.2/src/hs.h --- old/hyperscan-5.4.1/src/hs.h 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/src/hs.h 2023-04-19 11:34:39.000000000 +0200 @@ -43,7 +43,7 @@ #define HS_MAJOR 5 #define HS_MINOR 4 -#define HS_PATCH 1 +#define HS_PATCH 2 #include "hs_compile.h" #include "hs_runtime.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/src/nfa/nfa_dump_dispatch.cpp new/hyperscan-5.4.2/src/nfa/nfa_dump_dispatch.cpp --- old/hyperscan-5.4.1/src/nfa/nfa_dump_dispatch.cpp 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/src/nfa/nfa_dump_dispatch.cpp 2023-04-19 11:34:39.000000000 +0200 @@ -75,7 +75,6 @@ DISPATCH_CASE(LBR_NFA_VERM, LbrVerm, dbnt_func); \ DISPATCH_CASE(LBR_NFA_NVERM, LbrNVerm, dbnt_func); \ DISPATCH_CASE(LBR_NFA_SHUF, LbrShuf, dbnt_func); \ - DISPATCH_CASE(LBR_NFA_VSHUF, LbrVShuf, dbnt_func); \ DISPATCH_CASE(LBR_NFA_TRUF, LbrTruf, dbnt_func); \ DISPATCH_CASE(CASTLE_NFA, Castle, dbnt_func); \ DISPATCH_CASE(SHENG_NFA, Sheng, dbnt_func); \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/src/runtime.c new/hyperscan-5.4.2/src/runtime.c --- old/hyperscan-5.4.1/src/runtime.c 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/src/runtime.c 2023-04-19 11:34:39.000000000 +0200 @@ -90,7 +90,7 @@ * callers. */ static really_inline -char validScratch(const struct hs_scratch *s, u32 crc) { +char validScratch(const struct RoseEngine *t, const struct hs_scratch *s) { if (!ISALIGNED_CL(s)) { DEBUG_PRINTF("bad alignment %p\n", s); return 0; @@ -101,12 +101,18 @@ return 0; } - /* add quick rose sanity checks by db crc*/ - if (s->db_crc != crc) { - DEBUG_PRINTF("Improper scratch for current db\n"); + if (t->mode == HS_MODE_BLOCK && t->stateOffsets.end > s->bStateSize) { + DEBUG_PRINTF("bad state size\n"); return 0; } + if (t->queueCount > s->queueCount) { + DEBUG_PRINTF("bad queue count\n"); + return 0; + } + + /* TODO: add quick rose sanity checks */ + return 1; } @@ -329,7 +335,7 @@ return HS_DB_MODE_ERROR; } - if (unlikely(!validScratch(scratch, db->crc32))) { + if (unlikely(!validScratch(rose, scratch))) { return HS_INVALID; } @@ -503,7 +509,7 @@ static really_inline void init_stream(struct hs_stream *s, const struct RoseEngine *rose, - char init_history, u32 crc) { + char init_history) { char *state = getMultiState(s); if (init_history) { @@ -518,7 +524,6 @@ s->rose = rose; s->offset = 0; - s->crc32 = crc; setStreamStatus(state, 0); roseInitState(rose, state); @@ -563,7 +568,7 @@ return HS_NOMEM; } - init_stream(s, rose, 1, db->crc32); + init_stream(s, rose, 1); *stream = s; return HS_SUCCESS; @@ -751,7 +756,7 @@ } if (onEvent) { - if (!scratch || !validScratch(scratch, to_id->crc32)) { + if (!scratch || !validScratch(to_id->rose, scratch)) { return HS_INVALID; } if (unlikely(markScratchInUse(scratch))) { @@ -977,7 +982,7 @@ hs_scratch_t *scratch, match_event_handler onEvent, void *context) { if (unlikely(!id || !scratch || !data || - !validScratch(scratch, id->crc32))) { + !validScratch(id->rose, scratch))) { return HS_INVALID; } @@ -999,7 +1004,7 @@ } if (onEvent) { - if (!scratch || !validScratch(scratch, id->crc32)) { + if (!scratch || !validScratch(id->rose, scratch)) { return HS_INVALID; } if (unlikely(markScratchInUse(scratch))) { @@ -1029,7 +1034,7 @@ } if (onEvent) { - if (!scratch || !validScratch(scratch, id->crc32)) { + if (!scratch || !validScratch(id->rose, scratch)) { return HS_INVALID; } if (unlikely(markScratchInUse(scratch))) { @@ -1044,7 +1049,7 @@ } // history already initialised - init_stream(id, id->rose, 0, id->crc32); + init_stream(id, id->rose, 0); return HS_SUCCESS; } @@ -1123,7 +1128,7 @@ return HS_DB_MODE_ERROR; } - if (unlikely(!validScratch(scratch, db->crc32))) { + if (unlikely(!validScratch(rose, scratch))) { return HS_INVALID; } @@ -1133,7 +1138,7 @@ hs_stream_t *id = (hs_stream_t *)(scratch->bstate); - init_stream(id, rose, 1, db->crc32); /* open stream */ + init_stream(id, rose, 1); /* open stream */ for (u32 i = 0; i < count; i++) { DEBUG_PRINTF("block %u/%u offset=%llu len=%u\n", i, count, id->offset, @@ -1248,7 +1253,7 @@ const struct RoseEngine *rose = to_stream->rose; if (onEvent) { - if (!scratch || !validScratch(scratch, to_stream->crc32)) { + if (!scratch || !validScratch(to_stream->rose, scratch)) { return HS_INVALID; } if (unlikely(markScratchInUse(scratch))) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/src/scratch.c new/hyperscan-5.4.2/src/scratch.c --- old/hyperscan-5.4.1/src/scratch.c 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/src/scratch.c 2023-04-19 11:34:39.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2022, Intel Corporation + * Copyright (c) 2015-2023, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -373,7 +373,6 @@ hs_scratch_free((*scratch)->scratch_alloc); } - proto->db_crc = db->crc32; hs_error_t alloc_ret = alloc_scratch(proto, scratch); hs_scratch_free(proto_tmp); /* kill off temp used for sizing */ if (alloc_ret != HS_SUCCESS) { @@ -381,7 +380,6 @@ return alloc_ret; } } else { - (*scratch)->db_crc = db->crc32; hs_scratch_free(proto_tmp); /* kill off temp used for sizing */ unmarkScratchInUse(*scratch); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/src/scratch.h new/hyperscan-5.4.2/src/scratch.h --- old/hyperscan-5.4.1/src/scratch.h 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/src/scratch.h 2023-04-19 11:34:39.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2022, Intel Corporation + * Copyright (c) 2015-2023, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -171,7 +171,6 @@ */ struct ALIGN_CL_DIRECTIVE hs_scratch { u32 magic; - u32 db_crc; /**< identity of a scratch space, for validity check */ u8 in_use; /**< non-zero when being used by an API call. */ u32 queueCount; u32 activeQueueArraySize; /**< size of active queue array fatbit in bytes */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/src/state.h new/hyperscan-5.4.2/src/state.h --- old/hyperscan-5.4.1/src/state.h 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/src/state.h 2023-04-19 11:34:39.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2022, Intel Corporation + * Copyright (c) 2015-2023, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -57,9 +57,6 @@ /** \brief The current stream offset. */ u64a offset; - - /** \brief Identity of hs_stream, for scratch validity check. */ - u32 crc32; }; #define getMultiState(hs_s) ((char *)(hs_s) + sizeof(*(hs_s))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyperscan-5.4.1/src/stream_compress_impl.h new/hyperscan-5.4.2/src/stream_compress_impl.h --- old/hyperscan-5.4.1/src/stream_compress_impl.h 2023-02-22 00:03:50.000000000 +0100 +++ new/hyperscan-5.4.2/src/stream_compress_impl.h 2023-04-19 11:34:39.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2022, Intel Corporation + * Copyright (c) 2017-2023, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -116,7 +116,6 @@ = ((STREAM_QUAL char *)stream) + sizeof(struct hs_stream); COPY_FIELD(stream->offset); - COPY_FIELD(stream->crc32); ASSIGN(stream->rose, rose); COPY(stream_body + ROSE_STATE_OFFSET_STATUS_FLAGS, 1);