Re: strdup(NULL) supposed to create SIGSEGV?

看板FB_hackers作者時間17年前 (2008/04/23 15:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/25 (看更多)
On Tue, 22 Apr 2008 22:40:21 -0700 "Garrett Cooper" <yanefbsd@gmail.com> wrote: > Hi all, > I made an oops in a program, which uncovered "feature" in strdup(2) > that I wasn't aware of before. So I was wondering, is strdup(pointer = NULL) > supposed to segfault should this just return NULL and set errno? Yes, it's supposed to segfault. Check out what, say, strcpy does if you ask it to copy a NULL pointer. And this is an improvement from the bad old days, when they would happily walk through memory starting at 0..... Besides, errno is used to signal errors from system calls. strdup isn't a system call, it's a library function (says so at the top of the man page). > Good news is that Linux does the same thing (yay?), so at least FreeBSD > isn't alone.. Do you have examples of systems where strdup doesn't behave this way? <mike -- Mike Meyer <mwm@mired.org> http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
文章代碼(AID): #183kCl00 (FB_hackers)
討論串 (同標題文章)
文章代碼(AID): #183kCl00 (FB_hackers)