2008年8月13日 星期三

[Unix] setenv Memory Leak的問題

最近為了程式自己會莫名其妙的長大而苦惱,但是去看code卻也沒有發現什麼忘記delete或是free的pointer。本來為了避免這些麻煩,所以大部分的資料都是用string或是stl的container來實作,沒想到還是遇到這樣的問題。

把code翻了又翻,最後幾乎把所有可能發生的function call 都加上memory leak去google搜尋,結果發現了下面的man page,告訴我們說如果setenv被連續使用時,set的value長度不一樣,他會自己重新malloc一個新的記憶體,舊的記憶體就會造成memory leak了。

居然和系統(OpenBSD)上面的man page寫的不一樣,如果沒有用google search的話,我大概還在找到死吧。只能說不經一bug,不長一智...QQ。

參考資料 :
http://www.manpagez.com/man/3/setenv/

1 則留言:

Unknown 提到...

這是哪隻程式
後來怎麼解決哩?