diff --git a/kernel/pipe.c b/kernel/pipe.c
index e358283..c066afb 100644
--- a/kernel/pipe.c
+++ b/kernel/pipe.c
@@ -83,7 +83,7 @@ pipewrite(struct pipe *pi, uint64 addr, int n)
   acquire(&pi->lock);
   for(i = 0; i < n; i++){
     while(pi->nwrite == pi->nread + PIPESIZE){  //DOC: pipewrite-full
-      if(pi->readopen == 0 || myproc()->killed){
+      if(pi->readopen == 0 || pr->killed){
         release(&pi->lock);
         return -1;
       }
@@ -108,7 +108,7 @@ piperead(struct pipe *pi, uint64 addr, int n)
 
   acquire(&pi->lock);
   while(pi->nread == pi->nwrite && pi->writeopen){  //DOC: pipe-empty
-    if(myproc()->killed){
+    if(pr->killed){
       release(&pi->lock);
       return -1;
     }
diff --git a/kernel/proc.c b/kernel/proc.c
index bbf3af0..ef2ad68 100644
--- a/kernel/proc.c
+++ b/kernel/proc.c
@@ -116,7 +116,7 @@ found:
 
   // Set up new context to start executing at forkret,
   // which returns to user space.
-  memset(&p->context, 0, sizeof p->context);
+  memset(&p->context, 0, sizeof(p->context));
   p->context.ra = (uint64)forkret;
   p->context.sp = p->kstack + PGSIZE;