summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsiddharth <s@ricketyspace.net>2021-06-05 16:29:41 -0400
committersiddharth <s@ricketyspace.net>2021-06-05 16:29:41 -0400
commit3e5b67b5f6e8bc703f4497f37611e1058a5d3c78 (patch)
tree9e3751183facbc6768950b4c6521478b455386bc
parent9b74672bd7ba63be4eeb13b1a07535e950e08920 (diff)
lib: update `BytesInCommon`
Ensure that the returned `common` array does not point to any of the []byte arrays in `bbytes`.
-rw-r--r--lib/byte.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/byte.go b/lib/byte.go
index 149be2a..a29a7b0 100644
--- a/lib/byte.go
+++ b/lib/byte.go
@@ -16,11 +16,13 @@ func ByteInBytes(b byte, bs []byte) bool {
// Returns bytes that are common in the given array of array of bytes
// `bbytes`.
func BytesInCommon(bbytes [][]byte) []byte {
- common := make([]byte, 0)
+ var common []byte
switch l := len(bbytes); {
case l == 1:
- common = bbytes[0]
+ common = make([]byte, len(bbytes[0]))
+ copy(common, bbytes[0])
case l > 1:
+ common = make([]byte, 0)
commonRest := BytesInCommon(bbytes[1:])
for _, b := range bbytes[0] {
if ByteInBytes(b, commonRest) {