aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/graph
diff options
context:
space:
mode:
authorGravatar Sanjoy Das <sanjoy@google.com>2018-10-01 23:06:12 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-10-01 23:12:22 -0700
commit9884cb36290664593682d235ce0d5e1925e3fa23 (patch)
tree3d94ff37154198c050b91d7a4db475cace6f290f /tensorflow/core/graph
parent721ab82745a113fb8cca4ce2b1f22d1d5ab5d546 (diff)
Check that IsValid{Input|Output}Tensor is only given non-control edges
PiperOrigin-RevId: 215338658
Diffstat (limited to 'tensorflow/core/graph')
-rw-r--r--tensorflow/core/graph/graph.cc4
-rw-r--r--tensorflow/core/graph/graph.h8
2 files changed, 6 insertions, 6 deletions
diff --git a/tensorflow/core/graph/graph.cc b/tensorflow/core/graph/graph.cc
index 1630ab7a15..4c0cd14ff1 100644
--- a/tensorflow/core/graph/graph.cc
+++ b/tensorflow/core/graph/graph.cc
@@ -643,7 +643,7 @@ Status Graph::IsValidNode(const Node* node) const {
Status Graph::IsValidOutputTensor(const Node* node, int idx) const {
TF_RETURN_IF_ERROR(IsValidNode(node));
- if (idx >= node->num_outputs()) {
+ if (idx >= node->num_outputs() || idx < 0) {
return errors::OutOfRange("Node '", node->name(), "' (type: '",
node->op_def().name(),
"', num of outputs: ", node->num_outputs(),
@@ -654,7 +654,7 @@ Status Graph::IsValidOutputTensor(const Node* node, int idx) const {
Status Graph::IsValidInputTensor(const Node* node, int idx) const {
TF_RETURN_IF_ERROR(IsValidNode(node));
- if (idx >= node->num_inputs()) {
+ if (idx >= node->num_inputs() || idx < 0) {
return errors::OutOfRange("Node '", node->name(), "' (type: '",
node->op_def().name(),
"', num of inputs: ", node->num_inputs(),
diff --git a/tensorflow/core/graph/graph.h b/tensorflow/core/graph/graph.h
index 52e9f23a76..72cef07072 100644
--- a/tensorflow/core/graph/graph.h
+++ b/tensorflow/core/graph/graph.h
@@ -590,12 +590,12 @@ class Graph {
// Returns OK if `node` is non-null and belongs to this graph
Status IsValidNode(const Node* node) const;
- // Returns OK if IsValidNode(`node`) and `idx` is less than
- // node->num_outputs()
+ // Returns OK if IsValidNode(`node`) and `idx` is a valid output. Does not
+ // accept control outputs.
Status IsValidOutputTensor(const Node* node, int idx) const;
- // Returns OK if IsValidNode(`node`) and `idx` is less than
- // node->num_inputs()
+ // Returns OK if IsValidNode(`node`) and `idx` a valid input. Does not accept
+ // control inputs.
Status IsValidInputTensor(const Node* node, int idx) const;
// Create and return a new WhileContext owned by this graph. This is called