--- a/src/ast_driver.c Wed Nov 12 12:50:42 2014
+++ b/src/ast_driver.c Wed Nov 12 12:51:59 2014
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2005 ASPEED Technology Inc.
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -1580,6 +1581,11 @@
}
else
Flags = ASTGetVGAEDID(pScrn, DDC_data);
+ /*
+ * Buffer is of size 128, can't read extension blocks even the monitor
+ * provides. 126 is NO_EDID defined in edid.h
+ */
+ DDC_data[126] = 0;
if (Flags)
{
@@ -1633,6 +1639,12 @@
else
Flags = ASTGetVGAEDID(pScrn, DDC_data);
+ /*
+ * Buffer is of size 128, can't read extension blocks even the monitor
+ * provides. 126 is NO_EDID defined in edid.h
+ */
+ DDC_data[126] = 0;
+
if (Flags)
{
MonInfo = MonInfo1 = xf86InterpretEDID(pScrn->scrnIndex, DDC_data);