tlibplumb, Mail: fix crash on nil plumb fids - plan9port - [fork] Plan 9 from user space
(HTM) git clone git://src.adamsgaard.dk/plan9port
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 7b5db1c35abac2240fffbee2027c3e99b760863c
(DIR) parent 0cadb4301d18724e7513d7489cb5bebd262c82f1
(HTM) Author: Mathieu Lonjaret <lejatorn@gmail.com>
Date: Sat, 12 Sep 2009 15:25:51 -0400
libplumb, Mail: fix crash on nil plumb fids
http://codereview.appspot.com/116083
Diffstat:
M src/cmd/acme/mail/mail.c | 9 ++++++---
M src/libplumb/fid.c | 4 ++++
2 files changed, 10 insertions(+), 3 deletions(-)
---
(DIR) diff --git a/src/cmd/acme/mail/mail.c b/src/cmd/acme/mail/mail.c
t@@ -84,9 +84,12 @@ threadmain(int argc, char *argv[])
quotefmtinstall();
/* open these early so we won't miss notification of new mail messages while we read mbox */
- plumbsendfd = plumbopenfid("send", OWRITE|OCEXEC);
- plumbseemailfd = plumbopenfid("seemail", OREAD|OCEXEC);
- plumbshowmailfd = plumbopenfid("showmail", OREAD|OCEXEC);
+ if((plumbsendfd = plumbopenfid("send", OWRITE|OCEXEC)) == nil)
+ fprint(2, "warning: open plumb/send: %r\n");
+ if((plumbseemailfd = plumbopenfid("seemail", OREAD|OCEXEC)) == nil)
+ fprint(2, "warning: open plumb/seemail: %r\n");
+ if((plumbshowmailfd = plumbopenfid("showmail", OREAD|OCEXEC)) == nil)
+ fprint(2, "warning: open plumb/showmail: %r\n");
shortmenu = 0;
srvname = "mail";
(DIR) diff --git a/src/libplumb/fid.c b/src/libplumb/fid.c
t@@ -138,6 +138,10 @@ plumbrecvfid(CFid *fid)
Plumbmsg *m;
int n, more;
+ if(fid == nil){
+ werrstr("invalid fid");
+ return nil;
+ }
buf = malloc(8192);
if(buf == nil)
return nil;