devvmx: error handling in clearmeminfo

This commit is contained in:
aiju 2017-06-21 09:59:32 +00:00
parent 779f6cb3b8
commit 37b9ab5a04

View file

@ -703,9 +703,14 @@ cmdsetmeminfo(VmCmd *, va_list va)
q = strchr(p, '\n');
if(q == 0) break;
*q = 0;
if(mp == nil)
if(mp == nil){
mp = malloc(sizeof(VmMem));
if(mp == nil)
error(Enomem);
}
memset(mp, 0, sizeof(VmMem));
if(waserror()){
putseg(mp->seg);
free(mp->name);
free(mp);
nexterror();
@ -714,7 +719,6 @@ cmdsetmeminfo(VmCmd *, va_list va)
p = q + 1;
if(rc == 0) goto next;
if(rc != 4 && rc != 6) error("number of fields wrong");
memset(mp, 0, sizeof(VmMem));
for(q = f[0]; *q != 0; q++)
switch(*q){
case 'r': if((mp->attr & 1) != 0) goto tinval; mp->attr |= 1; break;