Skip to content

Commit

Permalink
GM: fix CWE-117 reported by CodeQL checker
Browse files Browse the repository at this point in the history
Signed-off-by: llhuii <[email protected]>
  • Loading branch information
llhuii committed Dec 15, 2021
1 parent 5e329de commit 2e4d193
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions pkg/globalmanager/messagelayer/ws/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,11 @@ limitations under the License.
package ws

import (
"fmt"
"net/http"
"strings"

"k8s.io/apimachinery/pkg/util/validation"
"k8s.io/klog/v2"

"github.com/gorilla/websocket"
Expand Down Expand Up @@ -56,16 +59,31 @@ func (srv *Server) upgrade(w http.ResponseWriter, r *http.Request) *websocket.Co
return conn
}

func validateNodeName(nodeName string) (err error) {

errs := validation.IsDNS1123Subdomain(nodeName)
if len(errs) > 0 {
err = fmt.Errorf("invalid node name: %s", strings.Join(errs, ","))
}
return
}

func (srv *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) {
nodeName := req.Header.Get("Node-Name")

err := validateNodeName(nodeName)
if err != nil {
klog.Warningf("closing the connection, due to: %v", err)
return
}
wsConn := srv.upgrade(w, req)
if wsConn == nil {
klog.Errorf("failed to upgrade to websocket for node %s", nodeName)
return
}

// serve connection
nodeClient := &nodeClient{conn: wsConn, req: req}
nodeClient := &nodeClient{conn: wsConn, req: req, nodeName: nodeName}
go nodeClient.Serve()
}

Expand Down Expand Up @@ -104,8 +122,8 @@ func (nc *nodeClient) writeOneMsg(msg model.Message) error {
}

func (nc *nodeClient) Serve() {
nodeName := nc.req.Header.Get("Node-Name")
nc.nodeName = nodeName

nodeName := nc.nodeName
klog.Infof("established connection for node %s", nodeName)
// nc.conn.SetCloseHandler
closeCh := make(chan struct{}, 2)
Expand Down

0 comments on commit 2e4d193

Please sign in to comment.