From b1e91e578bc60475dce97df055d8fe9721fa4b77 Mon Sep 17 00:00:00 2001 From: Sauyon Lee Date: Tue, 17 Aug 2021 10:03:17 -0700 Subject: [PATCH] Add models for library changes --- ql/src/semmle/go/frameworks/stdlib/ArchiveZip.qll | 4 ++++ ql/src/semmle/go/frameworks/stdlib/IoFs.qll | 4 ++++ ql/src/semmle/go/frameworks/stdlib/Strconv.qll | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/ql/src/semmle/go/frameworks/stdlib/ArchiveZip.qll b/ql/src/semmle/go/frameworks/stdlib/ArchiveZip.qll index 02a51b54ffb..36e3f611f56 100644 --- a/ql/src/semmle/go/frameworks/stdlib/ArchiveZip.qll +++ b/ql/src/semmle/go/frameworks/stdlib/ArchiveZip.qll @@ -46,6 +46,10 @@ module ArchiveZip { hasQualifiedName("archive/zip", "Writer", "Create") and (inp.isResult(0) and outp.isReceiver()) or + // signature: func (*Writer) Copy(f *File) error + hasQualifiedName("archive/zip", "Writer", "Create") and + (inp.isParameter(0) and outp.isReceiver()) + or // signature: func (*Writer) CreateHeader(fh *FileHeader) (io.Writer, error) hasQualifiedName("archive/zip", "Writer", "CreateHeader") and (inp.isResult(0) and outp.isReceiver()) diff --git a/ql/src/semmle/go/frameworks/stdlib/IoFs.qll b/ql/src/semmle/go/frameworks/stdlib/IoFs.qll index 1aa52cd8b51..ea6f1be33b0 100644 --- a/ql/src/semmle/go/frameworks/stdlib/IoFs.qll +++ b/ql/src/semmle/go/frameworks/stdlib/IoFs.qll @@ -16,6 +16,10 @@ module IoFs { FunctionOutput outp; FunctionModels() { + //signature: func FileInfoToDirEntry(info FileInfo) DirEntry + this.hasQualifiedName(packagePath(), "FileInfoToDirEntry") and + (inp.isParameter(0) and outp.isResult()) + or //signature: func Glob(fsys FS, pattern string) (matches []string, err error) this.hasQualifiedName(packagePath(), "Glob") and (inp.isParameter(0) and outp.isResult(0)) diff --git a/ql/src/semmle/go/frameworks/stdlib/Strconv.qll b/ql/src/semmle/go/frameworks/stdlib/Strconv.qll index 7ad757e2580..14a5f4f29c4 100644 --- a/ql/src/semmle/go/frameworks/stdlib/Strconv.qll +++ b/ql/src/semmle/go/frameworks/stdlib/Strconv.qll @@ -56,6 +56,10 @@ module Strconv { hasQualifiedName("strconv", "Quote") and (inp.isParameter(0) and outp.isResult()) or + // signature: func QuotedPrefix(s string) (string, error) + hasQualifiedName("strconv", "QuotedPrefix") and + (inp.isParameter(0) and outp.isResult(0)) + or // signature: func QuoteToASCII(s string) string hasQualifiedName("strconv", "QuoteToASCII") and (inp.isParameter(0) and outp.isResult())