+ free(shash_steal(sh, node));
+}
+
+/* Deletes 'node' from 'sh'. Neither the node's name nor its data is freed;
+ * instead, ownership is transferred to the caller. Returns the node's
+ * name. */
+char *
+shash_steal(struct shash *sh, struct shash_node *node)
+{
+ char *name = node->name;
+