- memreg.perms = 0;
-
- for (i = 0; i < 3; i++)
- if (lfields[1][i] != '-')
- memreg.perms |= 1 << i;
+ memreg.prot = 0;
+
+ for (i = 0; i < 3; i++){
+ switch(lfields[1][i]){
+ case 'r':
+ memreg.prot |= PROT_READ;
+ break;
+ case 'w':
+ memreg.prot |= PROT_WRITE;
+ break;
+ case 'x':
+ memreg.prot |= PROT_EXEC;
+ break;
+ default:
+ break;
+ }
+ }
+ if (memreg.prot == 0)
+ memreg.prot |= PROT_NONE;