Giter VIP home page Giter VIP logo

Comments (5)

T-X avatar T-X commented on June 16, 2024

Ok, an error in the external call to syslog() seemed very suspicous and a bug in there quite unlikely.

So my suspicion was that there is probably some stack corruption earlier. And adding some printf()s often moved the segfault to other locations.

It seems that there is some length check missing for v = &uvifs[numvifs++]; in find_vif()s. uvifs has MAXMIFS = 32 elements and I have more than 32 interfaces. With an added printf() I could confirm that find_vif() increased numvifs to 37 and returned the non-existent &uvifs[37] shortly before crashing.

Disabling interfaces via "phyint <iface> disable;" in the config file does not help as it seems that find_vif() is called for all interfaces regardless of their usage.

I guess back in 2001 people thought no one would ever have more than 32 interfaces on a single system :-).

from pim6sd.

troglobit avatar troglobit commented on June 16, 2024

Heh, classic. I fixed this in pimd over ten years ago πŸ˜† ... oh how this little puppy need some tender love and care.

I'll look into fixing this bug later today (after work) when I'll port the pimd --disable-vifs from #4.

from pim6sd.

troglobit avatar troglobit commented on June 16, 2024

There, with the discovery in #4 and fixes on master you should be set to go. Thank you for taking the time to test pim6sd!

from pim6sd.

T-X avatar T-X commented on June 16, 2024

Yes, works great! I can't reproduce any segmentation faults with this patch. Thanks a lot ❀️!

(One thing I noticed is that having >32 "phyint <iface> disabled;" statements still gives an error on startup. However just using "default_phyint_status disable;" and enabling the two interfaces I need works just fine.)

Also thanks a lot for your swiftness and help with everything πŸ˜ƒ. (I hope @mweinelt and I are not causing any inconveniences. From our side, no need for hurry ☺️)

from pim6sd.

troglobit avatar troglobit commented on June 16, 2024

Cool, good to hear the fix worked! :)

The code really needs more attention, there are too many assumptions that should be explicitly checked and warnings added. I recognize much of it from my restoration of pimd, so bear with me.

No problem, just happy to help out. Really great to have a couple of knowledgeable testers trying things out. I have a couple of other projects that also need attention, but I'm taking this one as a great opportunity to learn IPv6 :-)

from pim6sd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.