summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ci: Add support for Ubuntu 20.04bugfix/fix-ci-buildsAlexander Amelkin2021-04-171-11/+3
| | | | | | | | - Add ubuntu-20.04 target - Disable building of Solaris-specific `bmc` interface on Ubuntu - Rename `ubuntu` matrix to `linux` Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* ci: Fix Ubuntu buildsAlexander Amelkin2021-04-171-0/+1
| | | | | | | | | | | GitHub machines sometimes aren't immediately updated after Ubuntu repos update. That leads to failed CI builds due to inability to install some packages. Add a call to `apt update` to update the package database before installing anything. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Fix compiler warningAlexander Amelkin2021-04-171-8/+24
| | | | | | | | | | Move #ifdef from the inside to the outside of assert()'s to get rid of this compiler warning: warning: embedding a directive within macro arguments has undefined behavior [-Wembedded-directive] Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Fix compiler warningAlexander Amelkin2021-04-172-4/+0
| | | | | | Drop some unused variables detected by the compiler Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Fix compiler warningAlexander Amelkin2021-04-173-17/+18
| | | | | | | | | | Refactor plugin ipmi_intf structure initialization for some plugins to stop the compiler complaining like this: warning: use of GNU old-style field designator extension [-Wgnu-designator] Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* ci: Update for GitHub Actions v2.274.2Bing-Hua Wang2021-04-081-2/+2
| | | | | | | | set-env and add-path have been removed since GitHub Actions v2.274.2. [1] Switch to Environment Files instead. [2] [1] https://github.blog/changelog/2020-11-09-github-actions-removing-set-env-and-add-path-commands-on-november-16/ [2] https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#environment-files
* free: Fix implicit function declarationsBing-Hua Wang2021-04-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | GitHub Actions macOS environment now has Xcode 12.0.1. [1] Xcode 12 Clang enables -Werror=implicit-function-declaration by default [2] and breaks the ipmitool build on macOS. [3] [1] https://github.com/actions/virtual-environments/issues/1712 [2] https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes "Clang now reports an error when you use a function without an explicit declaration when building C or Objective-C code for macOS (-Werror=implicit-function-declaration flag is on)." [3] https://github.com/ipmitool/ipmitool/pull/252/checks?check_run_id=1389463134 "checking for ld used by gcc... /Applications/Xcode_12.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld <snip> free.c:66:13: error: implicit declaration of function 'getuid' is invalid in C99 [-Werror,-Wimplicit-function-declaration] if (getuid() != 0) { ^ free.c:170:26: error: implicit declaration of function 'ipmi_get_oem' is invalid in C99 [-Werror,-Wimplicit-function-declaration] intf->manufacturer_id = ipmi_get_oem(intf);" ^ Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
* Use "#pragma once" for headersBing-Hua Wang2021-04-0862-253/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the header guard names in ipmitool duplicated with the ones in freeipmi. * ipmitool/ipmi_fru.h and freeipmi/fru/ipmi-fru.h both uses IPMI_FRU_H * ipmitool/ipmi_sdr.h and freeipmi/sdr/ipmi-sdr.h both uses IPMI_SDR_H * ipmitool/ipmi_sel.h and freeipmi/sel/ipmi-sel.h both uses IPMI_SEL_H This is problematic as including the 1st will prevent the 2nd from being included, leading to the loss of any declarations, inline definitions, or other "#includes" in the 2nd header. For example, including ipmitool/ipmi_sel.h and freeipmi/freeipmi.h fails to build. $ cat test.c #include <ipmitool/ipmi_sel.h> #include <freeipmi/freeipmi.h> $ gcc test.c -I${HOME}/src/oss/ipmitool/include In file included from /usr/include/freeipmi/freeipmi.h:90, from test.c:2: /usr/include/freeipmi/sdr/oem/ipmi-sdr-oem-intel-node-manager.h:48:44: error: unknown type name 'ipmi_sdr_ctx_t'; did you mean 'ipmi_fru_ctx_t'? 48 | int ipmi_sdr_oem_parse_intel_node_manager (ipmi_sdr_ctx_t ctx, | ^~~~~~~~~~~~~~ | ipmi_fru_ctx_t Remove header guards and use "#pragma once" instead. In this way, we don't have to do manual management to avoid name clashes. * src/plugins/lan/md5.h is left as is being an external header originally. * src/plugins/imb/imbapi.h is a convoluted header consisting of multiple header guards. Let's just add "#pragma once" and leave header guards as is for now. Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
* Remove unneeded execution bits from C source files and a header fileBing-Hua Wang2021-04-083-0/+0
| | | | Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
* Convert line endings to LFBing-Hua Wang2021-04-081-46/+46
| | | | | | | | | | | | The following commands is used on Linux to convert line endings to LF. git config core.autocrlf input git add --renormalize . git config --unset core.autocrlf It turns out there was only ipmi_kontronoem.h not using LF. Signed-off-by: Bing-Hua Wang <binghuawang@ami.com>
* Fixed compiler warning.Shitalkumar Gandhi2021-02-241-2/+2
| | | | | | | This patch has been added to fix "error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]" Signed-off-by: Shitalkumar Gandhi <shitalkumar.gandhi@seagate.com>
* RPM support: fixed broken build due to use of headers from kernelGilles Buloz2020-10-221-1/+1
| | | | | | | | | | | | | When building an RPM, --with-kerneldir is passed to ./configure. This adds the include path /lib/modules/<kversion>/build/include that may break the build but is not present when building with "make" so useless. For instance while building ipmi_sel.c with kernel 5.3.7-301.fc31.x86_64 : /lib/modules/5.3.7-301.fc31.x86_64/build/include/linux/stddef.h:11:2: error: expected identifier before numeric constant 11 | false = 0, | ^~~~~ Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
* imbapi: replace __FUNCTION__ to eleminate compiler warningsHeiko Thiery2020-10-041-33/+33
| | | | | | | imbapi.c:1393:52: warning: ISO C does not support ‘__FUNCTION__’ predefined identifier [-Wpedantic] lprintf(LOG_DEBUG, "%s: munmap(0x%x,%d) success", __FUNCTION__, Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
* lanplus: remove unused variableHeiko Thiery2020-10-041-2/+0
| | | | Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
* hpmfwupg: Clean up / refactorAlexander Amelkin2020-10-012-19/+17
| | | | | | | | | | - Drop a useless `extern` definition - Remove static variable `errorCount` from header, move it to the c file where it is actually used if needed Related to ipmitool/ipmitool#220 Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* fru: Fix crashes on 6-bit ASCII stringsAlexander Amelkin2020-09-161-2/+2
| | | | | | | | | Fix calculation of the buffer size for decoded 6-bit ASCII strings. Previously the program could allocate too a short buffer that caused buffer overflows and segmentation fault crashes on certain FRU contents. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Refix 6e037d6bfbbb93b349c8ca331ebde03a837f76bfAlexander Amelkin2020-08-073-9/+16
| | | | | | | | | Restore using strncmp() for "options=" and similar substrings. Resolves ipmitool/ipmitool#223 Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* oem: Add product ID for YADRO VEGMANAlexander Amelkin2020-07-231-0/+1
| | | | Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* configure.ac: add '--location' for curl to follow locationYpnose2020-07-211-1/+1
|
* configure.ac: replace '-#' by '--progress-bar' with curlYpnose2020-07-211-1/+1
|
* log: refix 16f937a1: Add missing header changesAlexander Amelkin2020-07-211-2/+1
| | | | Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Add version info to debug outputAlexander Amelkin2020-07-173-15/+16
| | | | | | | | | | | | | | | | | - Initialize the log at the start of ipmi_main() to allow for proper logging at the start; - Remove the unused log_level_get() function; - Update log_level_set() to take verbosity instead of log level (default verbosity is 0, which is LOG_NOTICE log level), use the function to update log level as `-v` is encountered in command line; - Move IANA PEN list debugging to verbosity 6. The list is too long to see it in each debug output of verbosity 5 that is used for debugging lan/lanplus packets; - For verbosity >= 2 (that is `-vv`) add the ipmitool version information at the start. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* doc, ci: Fix an error in package name for WindowsAlexander Amelkin2020-07-162-2/+2
| | | | | | it's dos2unix, not unix2dos Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* doc: Fix a small typo in INSTALLAlexander Amelkin2020-07-061-1/+1
| | | | Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* RPM support: updated spec file changelogGilles Buloz2020-07-041-0/+620
| | | | | | Updated specfile changelog according to the Changelog file Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
* RPM support: simplified build processGilles Buloz2020-07-046-31/+6
| | | | | | | | Simplified target "rpm" of Makefile, and removed rpmrc and rpmmacros to use default settings and those from the spec file such as Distribution that has been changed to "GitHub Build" instead of "Sourceforge Build". Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
* RPM support: fixed broken RPM buildGilles Buloz2020-07-043-6/+10
| | | | | | | | | | | | | | The command "make rpm" was failing for the following reasons : - setting the build directory to ./rpmbuild/ instead of default ~/rpmbuild/ was ignored. - errors in the spec file : wrong dates and characters in the changelog, and unpackaged files under misc/* - debug package built even if unneeded but failing to build because of missing requisites. Using "rpmbuild -tb ipmitool-*.tar.gz" instead of 'make rpm" builds under ~/rpmbuild/ but also fails because of the last two reasons. Signed-off-by: Gilles Buloz <gilles.buloz@kontron.com>
* doc: Update INSTALL with Windows infoAlexander Amelkin2020-07-041-0/+16
| | | | | | | | | | | | | | The documentation now contains instructions on how to build on Windows. The instructions have been verified and added to a continous integration workflow with the previous commit, so Windows buildability will from now on be automatically verified. Resolves: ipmitool/ipmitool#148 (ipmitool for win with FreeIPMI) ipmitool/ipmitool#200 (windows build error) ipmitool/ipmitool#201 (windows build error) ipmitool/ipmitool#203 (no lanplus on windows) Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* ci: Add Windows/cygwin configAlexander Amelkin2020-07-041-0/+40
| | | | Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* doc: Update INSTALL for new CIAlexander Amelkin2020-07-041-9/+29
| | | | | | | Update according to the new GitHub CI build configuration. Add information regarding prerequisites for macOS X 10.15. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* ci: Add github workflow, drop travisAlexander Amelkin2020-07-042-37/+82
| | | | Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Fix compatibility with OpenBSD and macOSAlexander Amelkin2020-07-042-7/+6
| | | | | | | | | | | | | | Neither of these systems have the `-t` option for `install`. For Linux the option is not necessary and is only needed if the target directory is specified before the source file(s). Also, macOS produces strange files with -e suffix for man pages when they are processed with sed using AC_CONFIG_FILES(). Move prefix expansion to another point in code to avoid these unneeded intermediate files produced by configure. Resolves: ipmitool/ipmitool#206 Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* dist: Fix dependencies and cleanupAlexander Amelkin2020-06-302-4/+11
| | | | | | | The `make distcheck` was failing because of some files deleted twice and some intermediate files not deleted at all. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* dist: Add missing ipmi_time.h header to packagingAlexander Amelkin2020-06-301-1/+2
| | | | Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* configure: Fix compatibility with non-bash systemsAlexander Amelkin2020-06-161-6/+5
| | | | | | | | | Remove a bashims from configure to make build compatible with systems without bash. Resolves ipmitool/ipmitool#205 Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Finalize refactoring of string comparisonsAlexander Amelkin2020-06-1033-502/+518
| | | | | | | | | | | | | | Unify the comparison idioms use. Always use `if(!strcmp())` for "if string equals" and `if(strcmp())` for "if string is not equal". Never use `== 0` and `!= 0` with `strcmp()`. Minor reformatting of the code immediately surrounding the refactored lines. Resolves ipmitool/ipmitool#104 Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* channel: Refactor set_user_access option processingAlexander Amelkin2020-06-103-29/+62
| | | | | | | | Reduce code duplication by extracting option names, types, and value ranges into a separate structure, and rewriting the option parsing code without mixing it with the data. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* Refactor string comparisonsJiang Junyu2020-06-1034-570/+563
| | | | | | | Clean up use of strcmp/strncmp/strncasecmp for command line arguments. Never use anything but `strcmp()` unless absolutely neccessary. Partialy resolves ipmitool/ipmitool#104
* sel: Fix OEM record definition exampleAlexander Amelkin2020-06-051-1/+1
| | | | | | | The example contained nested double quotes. Changed them to single quotes. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
* sdr: harden against bad recordsJohn Levon2020-05-261-10/+5
| | | | | | Harden ipmi_sdr_get_record() against bad records Signed-off-by: John Levon <john.levon@joyent.com>
* fru: fix memory leak in ipmi_spd_print_fruVaclav Dolezal2020-05-251-16/+16
| | | | | | Fixed by using centralised exiting. Signed-off-by: Václav Doležal <vdolezal@redhat.com>
* ipmi_sel_set_time: fix strptime() return checkPavel Kiryukhin2020-05-221-1/+1
| | | | | | | | | | The current behavior: - correct date format is not accepted by "sel time set". - incorrect date format that looks correct is accepted, but time is not set correctly. - commands like ipmitool sel time set "11/22/2013 trash" are accepted.
* hpm: use portable __max() in hpmfwupgJohn Levon2020-05-181-2/+3
| | | Instead of non-portable MAX() use __max() in hpmfwupg
* hpmfwupg: move variable definition to .c fileVaclav Dolezal2020-02-132-1/+3
| | | | Signed-off-by: Vaclav Dolezal <vdolezal@redhat.com>
* sel: time: fix null pointer dereference in setPavel Kiryukhin2020-02-121-1/+3
| | | | This is a refix of commit f0d5c17e
* fru, sdr: Fix id_string buffer overflowsChrostoper Ertl2020-02-042-17/+25
| | | | | | | | | | | | | | | | | | Final part of the fixes for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp 9 variants of stack buffer overflow when parsing `id_string` field of SDR records returned from `CMD_GET_SDR` command. SDR record structs have an `id_code` field, and an `id_string` `char` array. The length of `id_string` is calculated as `(id_code & 0x1f) + 1`, which can be larger than expected 16 characters (if `id_code = 0xff`, then length will be `(0xff & 0x1f) + 1 = 32`). In numerous places, this can cause stack buffer overflow when copying into fixed buffer of size `17` bytes from this calculated length.
* lanp: Fix buffer overflows in get_lan_param_selectChrostoper Ertl2020-02-041-7/+7
| | | | | | | | | Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `get_lan_param_select` function is missing a validation check on the response’s `data_len`, which it then returns to caller functions, where stack buffer overflow can occur.
* channel: Fix buffer overflowChrostoper Ertl2020-02-041-1/+4
| | | | | | | | | Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `ipmi_get_channel_cipher_suites` function does not properly check the final response’s `data_len`, which can lead to stack buffer overflow on the final copy.
* session: Fix buffer overflow in ipmi_get_session_infoChrostoper Ertl2020-02-041-4/+8
| | | | | | | | | Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `ipmi_get_session_info` function does not properly check the response `data_len`, which is used as a copy size, allowing stack buffer overflow.
* fru: Fix buffer overflow in ipmi_spd_print_fruChrostoper Ertl2020-02-041-1/+8
| | | | | | | | | | | | Partial fix for CVE-2020-5208, see https://github.com/ipmitool/ipmitool/security/advisories/GHSA-g659-9qxw-p7cp The `ipmi_spd_print_fru` function has a similar issue as the one fixed by the previous commit in `read_fru_area_section`. An initial request is made to get the `fru.size`, which is used as the size for the allocation of `spd_data`. Inside a loop, further requests are performed to get the copy sizes which are not checked before being used as the size for a copy into the buffer.