if (g_edid_break == 1)
                                        break;
 
-                               segments_edid_read(ctx, count / 2,
-                                                  pblock_buf, offset);
+                               ret = segments_edid_read(ctx, count / 2,
+                                                        pblock_buf, offset);
+                               if (ret < 0)
+                                       return ret;
+
                                memcpy(&pedid_blocks_buf[edid_pos],
                                       pblock_buf,
                                       MAX_DPCD_BUFFER_SIZE);
                                if (g_edid_break == 1)
                                        break;
 
-                               segments_edid_read(ctx, count / 2,
-                                                  pblock_buf, offset);
+                               ret = segments_edid_read(ctx, count / 2,
+                                                        pblock_buf, offset);
+                               if (ret < 0)
+                                       return ret;
+
                                memcpy(&pedid_blocks_buf[edid_pos],
                                       pblock_buf,
                                       MAX_DPCD_BUFFER_SIZE);