summaryrefslogtreecommitdiff
path: root/vendor/github.com/jackc/pgx/v4/internal
diff options
context:
space:
mode:
authorLibravatar dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2023-03-06 10:12:45 +0100
committerLibravatar GitHub <noreply@github.com>2023-03-06 10:12:45 +0100
commit24f6a447f3533f34a61237594d4b9b20d5a9fb78 (patch)
tree29b54a80c73b806b34b8e069b5b76f230f039814 /vendor/github.com/jackc/pgx/v4/internal
parent[chore]: Bump golang.org/x/oauth2 from 0.5.0 to 0.6.0 (#1597) (diff)
downloadgotosocial-24f6a447f3533f34a61237594d4b9b20d5a9fb78.tar.xz
[chore]: Bump github.com/jackc/pgx/v4 from 4.17.2 to 4.18.1 (#1595)
Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.17.2 to 4.18.1. - [Release notes](https://github.com/jackc/pgx/releases) - [Changelog](https://github.com/jackc/pgx/blob/v4.18.1/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v4.17.2...v4.18.1) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/jackc/pgx/v4/internal')
-rw-r--r--vendor/github.com/jackc/pgx/v4/internal/sanitize/sanitize.go66
1 files changed, 42 insertions, 24 deletions
diff --git a/vendor/github.com/jackc/pgx/v4/internal/sanitize/sanitize.go b/vendor/github.com/jackc/pgx/v4/internal/sanitize/sanitize.go
index a7a94e93e..5eef456c3 100644
--- a/vendor/github.com/jackc/pgx/v4/internal/sanitize/sanitize.go
+++ b/vendor/github.com/jackc/pgx/v4/internal/sanitize/sanitize.go
@@ -18,6 +18,12 @@ type Query struct {
Parts []Part
}
+// utf.DecodeRune returns the utf8.RuneError for errors. But that is actually rune U+FFFD -- the unicode replacement
+// character. utf8.RuneError is not an error if it is also width 3.
+//
+// https://github.com/jackc/pgx/issues/1380
+const replacementcharacterwidth = 3
+
func (q *Query) Sanitize(args ...interface{}) (string, error) {
argUse := make([]bool, len(args))
buf := &bytes.Buffer{}
@@ -138,11 +144,13 @@ func rawState(l *sqlLexer) stateFn {
return multilineCommentState
}
case utf8.RuneError:
- if l.pos-l.start > 0 {
- l.parts = append(l.parts, l.src[l.start:l.pos])
- l.start = l.pos
+ if width != replacementcharacterwidth {
+ if l.pos-l.start > 0 {
+ l.parts = append(l.parts, l.src[l.start:l.pos])
+ l.start = l.pos
+ }
+ return nil
}
- return nil
}
}
}
@@ -160,11 +168,13 @@ func singleQuoteState(l *sqlLexer) stateFn {
}
l.pos += width
case utf8.RuneError:
- if l.pos-l.start > 0 {
- l.parts = append(l.parts, l.src[l.start:l.pos])
- l.start = l.pos
+ if width != replacementcharacterwidth {
+ if l.pos-l.start > 0 {
+ l.parts = append(l.parts, l.src[l.start:l.pos])
+ l.start = l.pos
+ }
+ return nil
}
- return nil
}
}
}
@@ -182,11 +192,13 @@ func doubleQuoteState(l *sqlLexer) stateFn {
}
l.pos += width
case utf8.RuneError:
- if l.pos-l.start > 0 {
- l.parts = append(l.parts, l.src[l.start:l.pos])
- l.start = l.pos
+ if width != replacementcharacterwidth {
+ if l.pos-l.start > 0 {
+ l.parts = append(l.parts, l.src[l.start:l.pos])
+ l.start = l.pos
+ }
+ return nil
}
- return nil
}
}
}
@@ -228,11 +240,13 @@ func escapeStringState(l *sqlLexer) stateFn {
}
l.pos += width
case utf8.RuneError:
- if l.pos-l.start > 0 {
- l.parts = append(l.parts, l.src[l.start:l.pos])
- l.start = l.pos
+ if width != replacementcharacterwidth {
+ if l.pos-l.start > 0 {
+ l.parts = append(l.parts, l.src[l.start:l.pos])
+ l.start = l.pos
+ }
+ return nil
}
- return nil
}
}
}
@@ -249,11 +263,13 @@ func oneLineCommentState(l *sqlLexer) stateFn {
case '\n', '\r':
return rawState
case utf8.RuneError:
- if l.pos-l.start > 0 {
- l.parts = append(l.parts, l.src[l.start:l.pos])
- l.start = l.pos
+ if width != replacementcharacterwidth {
+ if l.pos-l.start > 0 {
+ l.parts = append(l.parts, l.src[l.start:l.pos])
+ l.start = l.pos
+ }
+ return nil
}
- return nil
}
}
}
@@ -283,11 +299,13 @@ func multilineCommentState(l *sqlLexer) stateFn {
l.nested--
case utf8.RuneError:
- if l.pos-l.start > 0 {
- l.parts = append(l.parts, l.src[l.start:l.pos])
- l.start = l.pos
+ if width != replacementcharacterwidth {
+ if l.pos-l.start > 0 {
+ l.parts = append(l.parts, l.src[l.start:l.pos])
+ l.start = l.pos
+ }
+ return nil
}
- return nil
}
}
}