Table of contents

     

     

    memp_init() 함수 무한 루프 오류

     

    LwIP 라이브러리를 활용하던 중, Init 과정을 벗어나지 못한 경우가 있었습니다.

     

    디버깅을 하다보니 Init 부분이라는 것을 알게 된 거고, 그 중 memp_init에서 무한 루프가 걸리더군요.

     

    나름 유명한 오픈소스다보니 Init 부분을 건든다는게 선뜻 내키지 않았는데요.

     

    검색하다보니 비슷한 현상인 분들이 많았습니다.

     

    수정하고 나니 큰 문제 없이 동작하네요.

     

     

     

    memp_init 함수 수정전

     

    #if MEMP_SEPARATE_POOLS
        memp = (struct memp*)memp_bases[i];
    #endif /* MEMP_SEPARATE_POOLS */

     

     

    memp_init 함수 수정후

     

    #if MEMP_SEPARATE_POOLS
        memp = (struct memp*)LWIP_MEM_ALIGN(memp_bases[i]);
    #endif /* MEMP_SEPARATE_POOLS */

     

     

    깊게 파보려다가 시간도 부족하고 의미가 있을까 싶어 Pass했네요.

     

    아마도, 링크가 잘 안되거나 일부분 꼬여서 그런 것 같은데요.

     

    나중에 시간되면 다시 한 번 분석해 봐야겠습니다.