Skip to content

Unicode character in dynamic segment crashes app #152

Description

@joanniclaborde

Given this redirects.js file:

module.exports = [{
  from: /\/career(.*)/,
  to: 'http://site.com/career{0}'
}];

And this request: /careers/venture-capital-funding-increased-in-2010-%E2%80%93-but-still-remains-well-below-2007-levels/

This error happens:

TypeError: The header content contains invalid characters
  File "_http_outgoing.js", line 363, in ServerResponse.OutgoingMessage.setHeader
  File "/app/node_modules/solidus/node_modules/express/node_modules/connect/lib/patch.js", line 59, in ServerResponse.res.setHeader
    return setHeader.call(this, field, val);
  File "/app/node_modules/solidus/node_modules/express/lib/response.js", line 518, in ServerResponse.res.set.res.header
    this.setHeader(field, val);
  File "/app/node_modules/solidus/node_modules/express/lib/response.js", line 651, in ServerResponse.res.location
    this.set('Location', url);
  File "/app/node_modules/solidus/node_modules/express/lib/response.js", line 693, in ServerResponse.res.redirect
    this.location(url);
  File "/app/node_modules/solidus/lib/redirect.js", line 41, in null.<anonymous>
    res.redirect( status, utils.expandVariables(url, req.params) );
  File "/app/node_modules/solidus/node_modules/express/lib/router/index.js", line 161, in callbacks
    if (fn.length < 4) return fn(req, res, callbacks);
  File "/app/node_modules/solidus/node_modules/express/lib/router/index.js", line 135, in param
    callbacks();
  File "/app/node_modules/solidus/node_modules/express/lib/router/index.js", line 142, in pass
    param(err);
  File "/app/node_modules/solidus/node_modules/express/lib/router/index.js", line 170, in Router._dispatch
    })(0);
  File "/app/node_modules/solidus/node_modules/express/lib/router/index.js", line 33, in Object.router
    self._dispatch(req, res, next);
  File "/app/node_modules/solidus/node_modules/express/node_modules/connect/lib/proto.js", line 190, in next
    layer.handle(req, res, next);
  File "/app/node_modules/solidus/lib/server.js", line 136, in null.<anonymous>
    next();
  File "/app/node_modules/solidus/node_modules/continuation-local-storage/context.js", line 48, in Namespace.run
    fn(context);
  File "/app/node_modules/solidus/lib/server.js", line 134, in Object.handle
    solidus_server.session.run(function() {
  File "/app/node_modules/solidus/node_modules/express/node_modules/connect/lib/proto.js", line 190, in next
    layer.handle(req, res, next);
  File "/app/node_modules/solidus/node_modules/express/node_modules/connect/lib/middleware/static.js", line 60, in resume
    next();
  File "/app/node_modules/solidus/node_modules/express/node_modules/connect/lib/middleware/static.js", line 73, in SendStream.error
    if (404 == err.status) return resume();
  File "events.js", line 77, in emitOne
  File "events.js", line 169, in SendStream.emit
  File "/app/node_modules/solidus/node_modules/express/node_modules/send/lib/send.js", line 147, in SendStream.error
    if (this.listeners('error').length) return this.emit('error', err);
  File "/app/node_modules/solidus/node_modules/express/node_modules/send/lib/send.js", line 248, in SendStream.onStatError
    if (~notfound.indexOf(err.code)) return this.error(404, err);
  File "/app/node_modules/solidus/node_modules/express/node_modules/send/lib/send.js", line 320, in null.<anonymous>
    if (err) return self.onStatError(err);
  File "/app/node_modules/solidus/node_modules/continuation-local-storage/node_modules/async-listener/glue.js", line 188, in null.<anonymous>
    var returned = original.apply(this, arguments);
  File "fs.js", line 82, in FSReqWrap.oncomplete

The redirect URL should contain encoded characters. Also, does this happen with resources too?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions