bbsmail的問題...

看板Maple (BBS架站)作者時間21年前 (2003/05/02 02:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
在bbsmail裡面.. 在 while (fgets(buf, sizeof(buf), stdin) && buf[0])裡面 有一段程式碼 if (!memcmp(buf, "From", 4)) { if ((str = strchr(buf, '<')) && (ptr = strrchr(str, '>'))) { if (str[-1] == ' ') str[-1] = '\0'; ............. ............. 如果信件寄過來的 From的那行是 From: <xxxs@xxx.xxx> 因為 str[-1]='\0' 也就是把buf終點設在 ":" 但是後面又有 一行程式 ptr = (char *) strchr(buf, ' '); 而 ptr 會得到 NULL,造成程式 segament fault 把 str[-1] = '\0'; 拿掉就ok 其實會有這樣的問題是因為在學校工作站寄信 他用的格式是 From: g913972 ee <g913972@ozz.nthu.edu.tw> 這樣是ok的,若是用他的webmail 則是 From: <g913972@ozz.nthu.edu.tw> 會掛點... 我有兩個疑問...一個是 RFC有限制From的格式嗎 如果有我順便去通知學校一下,如果沒有只能用改程式避免 另一個疑問是,位什麼會有 if (str[-1] == ' ')str[-1] = '\0'; 是為了把buf變短好增加效能???,或者是RFC有規範呢? 謝謝:) -- 我想我需要在陌生的人群中 找一找已經模糊的自我 更需要在亂了拍子的哀傷樂聲中 調一調我和她的節奏 -- ※ Origin: 崇先目光相對 <linshi.twbbs.org> ◆ From: 192.168.1.2
文章代碼(AID): #-iMIU00 (Maple)
討論串 (同標題文章)
文章代碼(AID): #-iMIU00 (Maple)