We present an algorithm for steering the output of a linear system from a feasible initial condition to a desired target position, while satisfying input constraints and nonconvex output constraints. The system input is generated by a collection of local linear state-feedback controllers. The pathplanning algorithm selects the appropriate local controller using a graph search, where the nodes of the graph are the local controllers and the edges of the graph indicate when it is possible to transition from one local controller to another without violating input or output constraints. We present two methods for computing the local controllers. The first uses a fixed-gain controller and scales its positive invariant set to satisfy the input and output constraints. We provide a linear program for determining the scale-factor and a condition for when the linear program has a closed-form solution. The second method designs the local controllers using a semi-definite program that maximizes the volume of the positive invariant set that satisfies state and input constraints. We demonstrate our path-planning algorithm on docking of a spacecraft. The semi-definite programming based control design has better performance but requires more computation.