### Eclipse Workspace Patch 1.0
#P Drop7
Index: modules/field/field.crud.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.crud.inc,v
retrieving revision 1.24
diff -u -r1.24 field.crud.inc
--- modules/field/field.crud.inc	11 Aug 2009 14:59:40 -0000	1.24
+++ modules/field/field.crud.inc	11 Aug 2009 16:21:04 -0000
@@ -234,6 +234,16 @@
     throw new FieldException(t('Attempt to create field name %name which already exists.', array('%name' => $field['field_name'])));
   }
 
+  // Disallow reserved field names
+  // http://drupal.org/node/382464
+  $fieldable_objects = module_invoke_all('fieldable_info');
+  foreach ($fieldable_objects as $type => $fieldable_object) {
+    if (in_array($field['field_name'], $fieldable_object['object keys'])) {
+      throw new FieldException(t('Attempt to create field name %name which is reserved by entity type %type.',
+        array('%name' => $field['field_name'], '%type' => $type)));
+    }
+  }
+
   $field += array(
     'cardinality' => 1,
     'locked' => FALSE,
Index: modules/field/field.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.test,v
retrieving revision 1.39
diff -u -r1.39 field.test
--- modules/field/field.test	11 Aug 2009 14:59:40 -0000	1.39
+++ modules/field/field.test	11 Aug 2009 16:21:05 -0000
@@ -1466,6 +1466,20 @@
     catch (FieldException $e) {
       $this->pass(t('Cannot create a field with a name longer than 32 characters.'));
     }
+
+    // Check that field name can not be an object key.
+    // "vid" is known as an object key from the "node" bundle.
+    try {
+      $field_definition = array(
+        'type' => 'test_field',
+        'field_name' => 'vid',
+      );
+      field_create_field($field_definition);
+      $this->fail(t('Cannot create a field bearing the name of an object key.'));
+    }
+    catch (FieldException $e) {
+      $this->pass(t('Cannot create a field bearing the name of an object key.'));
+    }
   }
 
   /**
