X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fcga.c;h=7652b04dad610a522e5871daff04e473106a68cf;hb=d775bbfa668ce9968bacc0e4257cf86e5ab88e90;hp=1d23a205c7c150c7443cff20cd1935e6e9a5217d;hpb=82071a7f5f0b18fbf1a4adc2a37fed1624572a79;p=palacios.git diff --git a/palacios/src/devices/cga.c b/palacios/src/devices/cga.c index 1d23a20..7652b04 100644 --- a/palacios/src/devices/cga.c +++ b/palacios/src/devices/cga.c @@ -1083,7 +1083,8 @@ int v3_cons_get_fb_text(struct video_internal * state, uint8_t * dst, uint_t off len1 = min_uint(length, state->activefb_len - framebuf_offset); len2 = length - len1; if (len1 > 0) memcpy(dst, framebuf + framebuf_offset, len1); - if (len2 > 0) memcpy(dst + len1, framebuf, len2); + // the following is tagged as OOB access to dst but appears to be fine + if (len2 > 0) memcpy(dst + len1, framebuf, len2); return 0; } @@ -1102,7 +1103,7 @@ int v3_cons_get_fb(struct vm_device * frontend_dev, uint8_t * dst, uint_t offset static int cga_free(struct video_internal * video_state) { if (video_state->framebuf_pa) { - PrintError(VM_NONE, VCORE_NONE, "Freeing framebuffer PA %p\n", (void *)(video_state->framebuf_pa)); + PrintDebug(VM_NONE, VCORE_NONE, "Freeing framebuffer PA %p\n", (void *)(video_state->framebuf_pa)); V3_FreePages((void *)(video_state->framebuf_pa), (FRAMEBUF_SIZE / 4096)); } @@ -1252,7 +1253,7 @@ static int cga_init(struct v3_vm_info * vm, v3_cfg_tree_t * cfg) { video_state->dev = dev; - video_state->framebuf_pa = (addr_t)V3_AllocShadowSafePages(vm,FRAMEBUF_SIZE / 4096); + video_state->framebuf_pa = (addr_t)V3_AllocPages(FRAMEBUF_SIZE / 4096); if (!video_state->framebuf_pa) { PrintError(vm, VCORE_NONE, "Cannot allocate frame buffer\n");