[gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
commit: d795de12c5f50d63651613565e72a0c5871b7763 Author: John Helmert III gentoo org> AuthorDate: Sat Sep 10 03:46:52 2022 + Commit: John Helmert III gentoo org> CommitDate: Sat Sep 10 03:46:52 2022 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d795de12 sys-apps/ipmitool: add missing function declarations For clang-15 compat. Signed-off-by: John Helmert III gentoo.org> .../files/ipmitool-1.8.19-missing-func-decl.patch | 32 ++ sys-apps/ipmitool/ipmitool-1.8.19.ebuild | 1 + 2 files changed, 33 insertions(+) diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch b/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch new file mode 100644 index ..5057fcaf0525 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.19-missing-func-decl.patch @@ -0,0 +1,32 @@ +https://github.com/ipmitool/ipmitool/pull/360 + +From a9e262480722f5affd237ee10d0bbc8c55617cb7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 2 Sep 2022 07:30:10 -0700 +Subject: [PATCH] ipmi_fru.c: Provide missing function declarations + +Fixes build with clang-15+ + +Signed-off-by: Khem Raj +--- + lib/ipmi_fru.c | 7 +++ + 1 file changed, 7 insertions(+) + +diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c +index 3d1d8a1a..5c5661cf 100644 +--- a/lib/ipmi_fru.c b/lib/ipmi_fru.c +@@ -60,6 +60,13 @@ static const char *section_id[4] = { + "Board Section", + "Product Section" + }; ++/* From lib/ipmi_hpmfwupg.c: */ ++uint16_t ++ipmi_intf_get_max_request_data_size(struct ipmi_intf * intf); ++ ++/* From src/plugins/ipmi_intf.c: */ ++uint16_t ++ipmi_intf_get_max_response_data_size(struct ipmi_intf * intf); + + static const char * combined_voltage_desc[] = { + "12 V", diff --git a/sys-apps/ipmitool/ipmitool-1.8.19.ebuild b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild index fabe705490a8..318e661f232d 100644 --- a/sys-apps/ipmitool/ipmitool-1.8.19.ebuild +++ b/sys-apps/ipmitool/ipmitool-1.8.19.ebuild @@ -39,6 +39,7 @@ DEPEND="${RDEPEND} # but it doesn't actually need either. PATCHES=( + "${FILESDIR}/${P}-missing-func-decl.patch" # yoinked out of debian's patchset, previously carried in a SRC_URI # tarball "${FILESDIR}/${P}-fix-buffer-overflow.patch"
[gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
commit: 9bace2960c71f0384e949596feae06b0bc71b6f9 Author: John Helmert III gentoo org> AuthorDate: Thu Sep 8 04:46:37 2022 + Commit: John Helmert III gentoo org> CommitDate: Sat Sep 10 03:38:12 2022 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9bace296 sys-apps/ipmitool: add 1.8.19 Don't use a tarball for patches, stop tying initscript to PV, drop obolete Debian handling cruft, various other simplifications and style fixes. Signed-off-by: John Helmert III gentoo.org> sys-apps/ipmitool/Manifest | 2 + sys-apps/ipmitool/files/exchange-bmc-os-info.initd | 23 sys-apps/ipmitool/files/ipmievd.confd | 27 sys-apps/ipmitool/files/ipmievd.initd | 28 .../files/ipmitool-1.8.19-CVE-2011-4339.patch | 20 +++ .../ipmitool-1.8.19-fix-buffer-overflow.patch | 21 +++ .../files/ipmitool-1.8.19-manpage-longlines.patch | 55 .../files/ipmitool-1.8.19-nvidia-iana.patch| 23 sys-apps/ipmitool/files/log_bmc.initd | 25 sys-apps/ipmitool/ipmitool-1.8.19.ebuild | 146 + 10 files changed, 370 insertions(+) diff --git a/sys-apps/ipmitool/Manifest b/sys-apps/ipmitool/Manifest index 5c974ac3707b..a38bac6ab786 100644 --- a/sys-apps/ipmitool/Manifest +++ b/sys-apps/ipmitool/Manifest @@ -1,3 +1,5 @@ +DIST enterprise-numbers-1.8.19.xz 1500100 BLAKE2B 15c21792bf46220c5908ecf4f0ddafe2fdf13a1799c054a0cb0cb647e7f489768855c4c25fba8a4408505ff0cf02d1a43408d5c4de557b1b30fe8abb477a7926 SHA512 e88cb459a9c8a3172770bcfefbec0a7ad7d65395063c8c0173fce776ea0beb7ad9f3610e636dfbd71d0af8c952c2b9bc6c25c815daa4ab281bed983cbe2ebcc4 DIST enterprise-numbers.2020-10-21.xz 1426932 BLAKE2B bfe39ceea321ba47cd40eafa67862eb4dfd6dc29b192afb20ad0c908cd93a16b4103c5de64d042df012417c8cadc03000f2b2a00779bcc582a430603cad5f3cf SHA512 4a854a56e8ed51997c320cbfba041d43cb98b14743ef80b67e701942068d3729604abaedb617655a83ca21a7e20ea5a622ede4de317ca492cefd46da784d28f3 DIST ipmitool-1.8.18_p20201004.tar.gz 638493 BLAKE2B 52f4ec8c82336b88640d1b91fc17af8f2fe0948a5c48c16067867dcad0852168d48bb21fdd99bde7ed957b66df888fd369c909079d1f81c861acd8c7f8dfa6f2 SHA512 8d72eef3584f4d2c86bfe43f70b5d687f3b7bbdf75b8979f7132c5c98b01baae22c336e540c197652187749fc9bb221a92e546b56e5cf2eb5650fad5094e9433 +DIST ipmitool-1.8.19.tar.gz 641383 BLAKE2B e1db12bb7301cb4b551f87fbfcd405b3597a1f32c45447b2b239d9d43a2cdbe213ee5408291d50801035cc80e28078fb3a778ab28335665bc3316798c13ea1fc SHA512 2d91706e9feba4b2ce4808eca087b81b842c4292a5840830001919c06ec8babd8f8761b74bb9dcf8fbc7765f028a5b1a192a3c1b643f2adaa157fed6fb0d1ee3 DIST ipmitool_1.8.18-9.debian-ported-gentoo.tar.xz 3208 BLAKE2B b37a127eff361039b3b810e19dd97f0c395462b658803f56f10f2dd1abbbe92743dc409ce6b83560db15621b7fa7a3c0f989100077893993df18108a082e49d2 SHA512 0f7646a2307ac98425e99dece9d3e3b23026136a97524151efdecc910fb537af41a91702782989046e44163da98610fa05792878473e228b45c16351f6015a45 diff --git a/sys-apps/ipmitool/files/exchange-bmc-os-info.initd b/sys-apps/ipmitool/files/exchange-bmc-os-info.initd new file mode 100644 index ..9c63983f21f3 --- /dev/null +++ b/sys-apps/ipmitool/files/exchange-bmc-os-info.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/init.d/exchange-bmc-os-info + +name="exchange-bmc-os-info" +description="Exchange Information between BMC and OS" +command=/usr/libexec/exchange-bmc-os-info +command_args="" +: "${DEVICENUM:=0}" # which BMC +required_files=/dev/ipmi${DEVICENUM} + +depend() { + use hostname modules + keyword -docker -lxc -prefix -systemd-nspawn +} + +start() { + "${command}" start +} +stop() { + "${command}" stop +} diff --git a/sys-apps/ipmitool/files/ipmievd.confd b/sys-apps/ipmitool/files/ipmievd.confd new file mode 100644 index ..b860c23c7f89 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmievd.confd @@ -0,0 +1,27 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/conf.d/ipmievd + +# Interfaces: +# open Linux OpenIPMI Interface +# imb Intel IMB Interface +# bmc IPMI v2.0 BMC interface +# lan IPMI v1.5 LAN Interface +# lanplus IPMI v2.0 RMCP+ LAN Interface + +INTERFACE="open" + +# Commands: +# open Use OpenIPMI for asyncronous notification of events +# selPoll SEL for notification of events +# +# 'pidfile=...' will be appended! +COMMAND="open daemon" + +# Options. + +OPTIONS="" + +# Device number: +# Used to target a specific BMC on a multi-node, multi-BMC system via the open interface +DEVICENUM=0 diff --git a/sys-apps/ipmitool/files/ipmievd.initd b/sys-apps/ipmitool/files/ipmievd.initd new file mode 100644 index ..e8ef2c39d454 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmievd.initd @@ -0,0 +1,28 @@ +#!/sbin/openrc-run +# Copyright 1999-2020
[gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
commit: 95ec1db1409c91b3683d7af31b13b1b8648bb3e8 Author: Robin H. Johnson gentoo org> AuthorDate: Sat Oct 24 22:59:40 2020 + Commit: Robin H. Johnson gentoo org> CommitDate: Sat Oct 24 23:00:09 2020 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95ec1db1 sys-apps/ipmitool: systemd unit for ipmievd Signed-off-by: Robin H. Johnson gentoo.org> sys-apps/ipmitool/files/ipmievd.service| 10 + .../ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild | 202 + 2 files changed, 212 insertions(+) diff --git a/sys-apps/ipmitool/files/ipmievd.service b/sys-apps/ipmitool/files/ipmievd.service new file mode 100644 index 000..fdae14f231c --- /dev/null +++ b/sys-apps/ipmitool/files/ipmievd.service @@ -0,0 +1,10 @@ +[Unit] +Description=IPMI event daemon + +[Service] +Type=forking +ExecStart=/usr/sbin/ipmievd open daemon + +[Install] +WantedBy=multi-user.target +Alias=ipmi.service diff --git a/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild new file mode 100644 index 000..528c0393a61 --- /dev/null +++ b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r3.ebuild @@ -0,0 +1,202 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools eutils flag-o-matic systemd + +DESCRIPTION="Utility for controlling IPMI enabled devices." +HOMEPAGE="http://ipmitool.sf.net/; +DEBIAN_PR="9.debian" +DEBIAN_PV="${PV/_p*}" +DEBIAN_P="${PN}_${DEBIAN_PV}" +DEBIAN_PF="${DEBIAN_P}-${DEBIAN_PR}" +COMMIT_ID=7fd7c0f2ba39e223868a8d83d81d4074f057d6fc +if [[ -n "${COMMIT_ID}" ]]; then + S="${WORKDIR}/${PN}-${COMMIT_ID}" + SRC_URI="https://github.com/ipmitool/ipmitool/archive/${COMMIT_ID}.tar.gz -> ${P}.tar.gz" +else + SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" +fi +# https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers +# is not available with version numbers or dates! +SRC_URI+=" + https://dev.gentoo.org/~robbat2/distfiles/ipmitool_1.8.18-9.debian-ported-gentoo.tar.xz + https://dev.gentoo.org/~robbat2/distfiles/enterprise-numbers.2020-10-21.xz + " + #http://http.debian.net/debian/pool/main/i/${PN}/${DEBIAN_PF}.tar.xz + # https://launchpad.net/ubuntu/+archive/primary/+files/${DEBIAN_PF}.tar.xz +#IUSE="freeipmi openipmi status" +IUSE="libressl openbmc openipmi static" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~x86" +LICENSE="BSD" + +RDEPEND=" + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + openbmc? ( sys-apps/systemd:0= ) + sys-libs/readline:0=" +DEPEND="${RDEPEND} + openipmi? ( sys-libs/openipmi ) + virtual/os-headers" + #freeipmi? ( sys-libs/freeipmi ) +# ipmitool CAN build against || ( sys-libs/openipmi sys-libs/freeipmi ) +# but it doesn't actually need either. + +PATCHES=( + #"${FILESDIR}"/${P}-openssl-1.1.patch +) + +# I hope all of this will get MUCH cleaner if upstream will just make a new +# release! - robbat2 2020/10/21 +src_prepare() { + default + if [ -d "${S}"/debian ] ; then + mv "${S}"/debian{,.package} + ln -s "${WORKDIR}"/debian "${S}" + eautoreconf + # Upstream commit includes SOME of the debian changes, but not all of them + sed -i \ + -e '/^#/d' \ + -e '/0120-openssl1.1.patch/d' \ + debian/patches/series + for p in $(cat debian/patches/series) ; do + echo $p + if ! nonfatal eapply -p1 debian/patches/$p ; then + echo "failed $p" + fail=1 + fi + done + [[ $fail -eq 1 ]] && die "fail" + fi + pd="${WORKDIR}"/ipmitool_1.8.18-9.debian-ported-gentoo/ + PATCHES=( + #"${pd}"/.0120-openssl1.1.patch + "${pd}"/0001.0100-fix_buf_overflow.patch + "${pd}"/0002.0500-fix_CVE-2011-4339.patch + "${pd}"/0003.0600-manpage_longlines.patch + #"${pd}"/0004.0110-getpass-prototype.patch + #"${pd}"/0005.0115-typo.patch + "${pd}"/0006.0125-nvidia-iana.patch + "${pd}"/0007.0615-manpage_typo.patch + #"${pd}"/0008.0130-Correct_lanplus_segment_violation.patch + "${pd}"/0009.0005-gcc10.patch + #"${pd}"/0010.0010-utf8.patch + ) + for p in "${PATCHES[@]}" ; do + eapply -p1 $p || die "failed $p" + done + + # Gentoo chooses to install ipmitool in /usr/sbin + # Where RedHat chooses /usr/bin + sed -i -e \ + 's,/usr/bin/ipmitool,/usr/sbin/ipmitool,g' \ + "${S}"/contrib/* \ + || die
[gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
commit: 436e19902cf8f23717c3605903248dcb273b890e Author: Robin H. Johnson gentoo org> AuthorDate: Sat Oct 24 21:37:04 2020 + Commit: Robin H. Johnson gentoo org> CommitDate: Sat Oct 24 22:12:00 2020 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=436e1990 sys-apps/ipmitool: cleanup init & add contrib tools Signed-off-by: Robin H. Johnson gentoo.org> .../files/exchange-bmc-os-info-1.8.18.initd| 23 +++ .../ipmitool/files/ipmitool-1.8.18-ipmievd.confd | 27 +++ .../ipmitool/files/ipmitool-1.8.18-ipmievd.initd | 28 +++ sys-apps/ipmitool/files/log_bmc-1.8.18.initd | 25 +++ .../ipmitool/ipmitool-1.8.18_p20201004-r2.ebuild | 200 + 5 files changed, 303 insertions(+) diff --git a/sys-apps/ipmitool/files/exchange-bmc-os-info-1.8.18.initd b/sys-apps/ipmitool/files/exchange-bmc-os-info-1.8.18.initd new file mode 100644 index 000..9c63983f21f --- /dev/null +++ b/sys-apps/ipmitool/files/exchange-bmc-os-info-1.8.18.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/init.d/exchange-bmc-os-info + +name="exchange-bmc-os-info" +description="Exchange Information between BMC and OS" +command=/usr/libexec/exchange-bmc-os-info +command_args="" +: "${DEVICENUM:=0}" # which BMC +required_files=/dev/ipmi${DEVICENUM} + +depend() { + use hostname modules + keyword -docker -lxc -prefix -systemd-nspawn +} + +start() { + "${command}" start +} +stop() { + "${command}" stop +} diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.confd b/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.confd new file mode 100644 index 000..b860c23c7f8 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.confd @@ -0,0 +1,27 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/conf.d/ipmievd + +# Interfaces: +# open Linux OpenIPMI Interface +# imb Intel IMB Interface +# bmc IPMI v2.0 BMC interface +# lan IPMI v1.5 LAN Interface +# lanplus IPMI v2.0 RMCP+ LAN Interface + +INTERFACE="open" + +# Commands: +# open Use OpenIPMI for asyncronous notification of events +# selPoll SEL for notification of events +# +# 'pidfile=...' will be appended! +COMMAND="open daemon" + +# Options. + +OPTIONS="" + +# Device number: +# Used to target a specific BMC on a multi-node, multi-BMC system via the open interface +DEVICENUM=0 diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.initd b/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.initd new file mode 100644 index 000..e8ef2c39d45 --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.18-ipmievd.initd @@ -0,0 +1,28 @@ +#!/sbin/openrc-run +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# /etc/init.d/ipmievd + +depend() { + use logger modules + keyword -docker -lxc -prefix -systemd-nspawn +} + +# TODO: ipmievd has a mode where it could be used to monitor multiple BMCs via +# DEVICENUM or remote systems, and it would be valid to run multiple instances. +# That is not supported by this init script at this time. + +description="IPMI event daemon for sending events to syslog LOCAL4" + +: "${DEVICENUM:=0}" +: "${INTERFACE:=open}" +: "${COMMAND:=open daemon}" +: "${OPTIONS:=}" + +daemon=ipmievd + +pidfile=/run/${daemon}.pid${DEVICENUM} # see manpage re suffix +command=/usr/sbin/${daemon} +cachefile=/run/${daemon}.${DEVICENUM}.sdr-cache +command_args="-d ${DEVICENUM} -S ${cachefile} -I ${INTERFACE} ${OPTIONS} ${COMMAND} pidfile=${pidfile}" +required_files=/dev/ipmi$DEVICENUM diff --git a/sys-apps/ipmitool/files/log_bmc-1.8.18.initd b/sys-apps/ipmitool/files/log_bmc-1.8.18.initd new file mode 100644 index 000..4064edf3b84 --- /dev/null +++ b/sys-apps/ipmitool/files/log_bmc-1.8.18.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="log_bmc" +description="Add SEL entries to indicate OS Boot status" +command=/usr/libexec/log_bmc.sh +command_args="" +: "${DEVICENUM:=0}" # which BMC +required_files=/dev/ipmi${DEVICENUM} + +depend() { + use modules + after ipmievd # to capture our own log event + keyword -docker -lxc -prefix -systemd-nspawn +} + +start() { + # TODO: should this keep start so it only fires once per boot? + "${command}" os_boot +} + +stop() { + "${command}" os_shutdown +} diff --git a/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r2.ebuild b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r2.ebuild new file mode 100644 index 000..a5724717937 --- /dev/null +++ b/sys-apps/ipmitool/ipmitool-1.8.18_p20201004-r2.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools eutils
[gentoo-commits] repo/gentoo:master commit in: sys-apps/ipmitool/, sys-apps/ipmitool/files/
commit: ce46fc22b9579eed7f0f3778cf4f53016dc215f0 Author: Lars Wendler gentoo org> AuthorDate: Wed Jun 13 13:04:37 2018 + Commit: Lars Wendler gentoo org> CommitDate: Wed Jun 13 13:04:58 2018 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce46fc22 sys-apps/ipmitool: Fixed build against openssl-1.1 Closes: https://bugs.gentoo.org/592494 Package-Manager: Portage-2.3.40, Repoman-2.3.9 .../files/ipmitool-1.8.18-openssl-1.1.patch| 145 + sys-apps/ipmitool/ipmitool-1.8.18-r1.ebuild| 6 +- 2 files changed, 150 insertions(+), 1 deletion(-) diff --git a/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch b/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch new file mode 100644 index 000..9e5a876f00a --- /dev/null +++ b/sys-apps/ipmitool/files/ipmitool-1.8.18-openssl-1.1.patch @@ -0,0 +1,145 @@ +Taken from various upstream commits: + +https://github.com/ipmitool/ipmitool/commit/b57487e360916ab3eaa50aa6d021c73b6337a4a0 +https://github.com/ipmitool/ipmitool/commit/77fe5635037ebaf411cae46cf5045ca819b5c145 +https://github.com/ipmitool/ipmitool/commit/f004b4b7197fc83e7d47ec8cbcaefffa9a922717 +https://github.com/ipmitool/ipmitool/commit/f004b4b7197fc83e7d47ec8cbcaefffa9a922717 + +--- ipmitool-1.8.18/src/plugins/lanplus/lanplus_crypt_impl.c ipmitool-1.8.18/src/plugins/lanplus/lanplus_crypt_impl.c +@@ -164,11 +164,7 @@ + uint8_t * output, + uint32_t* bytes_written) + { +- EVP_CIPHER_CTX ctx; +- EVP_CIPHER_CTX_init(); +- EVP_EncryptInit_ex(, EVP_aes_128_cbc(), NULL, key, iv); +- EVP_CIPHER_CTX_set_padding(, 0); +- ++ EVP_CIPHER_CTX *ctx = NULL; + + *bytes_written = 0; + +@@ -182,6 +178,14 @@ + printbuf(input, input_length, "encrypting this data"); + } + ++ ctx = EVP_CIPHER_CTX_new(); ++ if (ctx == NULL) { ++ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed"); ++ return; ++ } ++ EVP_CIPHER_CTX_init(ctx); ++ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); ++ EVP_CIPHER_CTX_set_padding(ctx, 0); + + /* +* The default implementation adds a whole block of padding if the input +@@ -191,28 +195,28 @@ + assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0); + + +- if(!EVP_EncryptUpdate(, output, (int *)bytes_written, input, input_length)) ++ if(!EVP_EncryptUpdate(ctx, output, (int *)bytes_written, input, input_length)) + { + /* Error */ + *bytes_written = 0; +- return; + } + else + { + uint32_t tmplen; + +- if(!EVP_EncryptFinal_ex(, output + *bytes_written, (int *))) ++ if(!EVP_EncryptFinal_ex(ctx, output + *bytes_written, (int *))) + { ++ /* Error */ + *bytes_written = 0; +- return; /* Error */ + } + else + { + /* Success */ + *bytes_written += tmplen; +- EVP_CIPHER_CTX_cleanup(); + } + } ++ /* performs cleanup and free */ ++ EVP_CIPHER_CTX_free(ctx); + } + + +@@ -239,11 +243,7 @@ + uint8_t * output, + uint32_t* bytes_written) + { +- EVP_CIPHER_CTX ctx; +- EVP_CIPHER_CTX_init(); +- EVP_DecryptInit_ex(, EVP_aes_128_cbc(), NULL, key, iv); +- EVP_CIPHER_CTX_set_padding(, 0); +- ++ EVP_CIPHER_CTX *ctx = NULL; + + if (verbose >= 5) + { +@@ -252,12 +252,20 @@ + printbuf(input, input_length, "decrypting this data"); + } + +- + *bytes_written = 0; + + if (input_length == 0) + return; + ++ ctx = EVP_CIPHER_CTX_new(); ++ if (ctx == NULL) { ++ lprintf(LOG_DEBUG, "ERROR: EVP_CIPHER_CTX_new() failed"); ++ return; ++ } ++ EVP_CIPHER_CTX_init(ctx); ++ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv); ++ EVP_CIPHER_CTX_set_padding(ctx, 0); ++ + /* +* The default implementation adds a whole block of padding if the input +* data is perfectly aligned. We would like to keep that from happening. +@@ -266,33 +274,33 @@ + assert((input_length % IPMI_CRYPT_AES_CBC_128_BLOCK_SIZE) == 0); + + +- if (!EVP_DecryptUpdate(, output, (int *)bytes_written, input, input_length)) ++ if (!EVP_DecryptUpdate(ctx, output, (int *)bytes_written, input, input_length)) + { + /* Error */ + lprintf(LOG_DEBUG, "ERROR: decrypt update failed"); + *bytes_written = 0; +- return; +