Don't crash when calling DirectDrawSurface::EnumAttachedSurfaces on a
surface with no attached surfaces.

diff --git a/dlls/ddraw/dsurface/main.c b/dlls/ddraw/dsurface/main.c
index 700b4c7..e91473c 100644
--- a/dlls/ddraw/dsurface/main.c
+++ b/dlls/ddraw/dsurface/main.c
@@ -867,10 +867,12 @@
     struct _surface_chain *chain = This->s.chain;
 
     TRACE("(%p)->(%p,%p)\n",This,context,esfcb);
-    for (i=0;i<chain->nrofsurfaces;i++) {
-      TRACE( "Enumerating attached surface (%p)\n", chain->surfaces[i]);
-      if (esfcb((LPDIRECTDRAWSURFACE) chain->surfaces[i], &(chain->surfaces[i]->s.surface_desc), context) == DDENUMRET_CANCEL)
-	return DD_OK; /* FIXME: return value correct? */
+    if (chain) {
+	for (i=0;i<chain->nrofsurfaces;i++) {
+	    TRACE( "Enumerating attached surface (%p)\n", chain->surfaces[i]);
+	    if (esfcb((LPDIRECTDRAWSURFACE) chain->surfaces[i], &(chain->surfaces[i]->s.surface_desc), context) == DDENUMRET_CANCEL)
+		return DD_OK; /* FIXME: return value correct? */
+	}
     }
     return DD_OK;
 }