Skip to content

arduino-cli lib install PacketSerial: nil pointer dereference #1176

Closed
@r10r

Description

@r10r

Environment

Rubens-MBP:arduino-cli ruben$ uname -a
Darwin Rubens-MBP.home 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64

Rubens-MBP:arduino ruben$ arduino-cli version
arduino-cli alpha Version: 0.15.1 Commit: c7403ed2 Date: 2021-02-04T10:11:39Z

Description

Hi devs, I tried to install the PacketSerial library which failed

Rubens-MBP:arduino ruben$ arduino-cli lib install PacketSerial
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x44be30c]

goroutine 1 [running]:
go.bug.st/relaxed-semver.(*Version).CompareTo(0xc000f2a630, 0x0, 0xc00171f5e9)
        /go/pkg/mod/go.bug.st/relaxed-semver@v0.0.0-20190922224835-391e10178d18/version.go:115 +0x3c
go.bug.st/relaxed-semver.(*Version).GreaterThan(...)
        /go/pkg/mod/go.bug.st/relaxed-semver@v0.0.0-20190922224835-391e10178d18/version.go:202
github.com/arduino/arduino-cli/arduino/libraries/librariesindex.(*Index).FindLibraryUpdate(0xc0001c2000, 0xc000581500, 0x0)
        /home/build/arduino/libraries/librariesindex/index.go:139 +0x88
github.com/arduino/arduino-cli/commands/lib.listLibraries(0xc00032c040, 0x4de0000, 0xc0014431d0, 0xc0037285a0, 0x0)
        /home/build/commands/lib/list.go:130 +0xe8
github.com/arduino/arduino-cli/commands/lib.LibraryResolveDependencies(0x4df1cc0, 0xc000038088, 0xc0014431d0, 0x1, 0xc0001c2dc8, 0x1)
        /home/build/commands/lib/resolve_deps.go:39 +0x145
github.com/arduino/arduino-cli/cli/lib.runInstallCommand(0xc001713340, 0xc0016bdaf0, 0x1, 0x1)
        /home/build/cli/lib/install.go:131 +0xed1
github.com/spf13/cobra.(*Command).execute(0xc001713340, 0xc0016bdad0, 0x1, 0x1, 0xc001713340, 0xc0016bdad0)
        /go/pkg/mod/github.com/spf13/cobra@v1.0.1-0.20200710201246-675ae5f5a98c/command.go:846 +0x29d
github.com/spf13/cobra.(*Command).ExecuteC(0xc0000bf8c0, 0x0, 0xc001699b00, 0x0)
        /go/pkg/mod/github.com/spf13/cobra@v1.0.1-0.20200710201246-675ae5f5a98c/command.go:950 +0x349
github.com/spf13/cobra.(*Command).Execute(...)
        /go/pkg/mod/github.com/spf13/cobra@v1.0.1-0.20200710201246-675ae5f5a98c/command.go:887
main.main()
        /home/build/main.go:31 +0x85

Analysis

This happens due to a missing nil check in FindLibraryUpdate for the following library:

&libraries.Library{Name:"UIPEthernet", Author:"ntruchsess", Maintainer:"Norbert Truchsess <norbert.truchsess@t-online.de>", Sentence:"Ethernet library for ENC28J60", Paragraph:"implements the same API as stock Ethernet-lib. Just replace the include of Ethernet.h with UIPEthernet.h", Website:"https://github.com/ntruchsess/arduino_uip", Category:"Uncategorized", Architectures:[]string{"avr"}, Types:[]string(nil), InstallDir:(*paths.Path)(0xc001797ad0), SourceDir:(*paths.Path)(0xc001797ad0), UtilityDir:(*paths.Path)(0xc001663930), Location:3, ContainerPlatform:(*cores.PlatformRelease)(nil), Layout:0x0, RealName:"UIPEthernet", DotALinkage:false, Precompiled:false, PrecompiledWithSources:false, LDflags:"", IsLegacy:false, Version:(*semver.Version)(nil), License:"Unspecified", Properties:(*properties.Map)(0xc0019f0750), Examples:paths.PathList{(*paths.Path)(0xc001663c10), (*paths.Path)(0xc001663c30), (*paths.Path)(0xc001663c60), (*paths.Path)(0xc001663c80), (*paths.Path)(0xc001663ca0), (*paths.Path)(0xc001663cc0)}, declaredHeaders:[]string(nil), sourceHeaders:[]string(nil), CompatibleWith:map[string]bool(nil)}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions