6bb6a4d5b9cd9812ed63d2d2e80580099b3bc557
angie
  Thu Feb 25 18:59:31 2021 -0800
Fix bug in skipping unrecognized protobuf repeated field (put else clause in the right place).

diff --git src/hg/lib/protobuf.c src/hg/lib/protobuf.c
index 90b704a..28c630d 100644
--- src/hg/lib/protobuf.c
+++ src/hg/lib/protobuf.c
@@ -259,37 +259,37 @@
                     verbose(2, "Expecting %lld bytes of embedded '%s' message.\n",
                             emByteLength, field->def->embedded->name);
                     if (emByteLength > 0)
                         {
                         AllocArray(field->value.vEmbedded, emByteLength);
                         for (i = 0;  emBytesLeft > 0;  i++)
                             field->value.vEmbedded[i] = protobufParse(stream, field->def->embedded,
                                                                       &emBytesLeft);
                         field->length = i;
                         }
                     }
                 else
                     errAbort("Sorry, data type %d not yet supported", dataType);
                 *pBytesLeft -= emByteLength;
                 }
+            }
         else
             {
             verbose(2, "Skipping %lld bytes of undefined field\n", emByteLength);
             pbSkipBytes(stream, emByteLength, pBytesLeft);
             }
         }
-        }
         break;
     case pbwt32b:
                 val32b = pbParse32b(stream, pBytesLeft);
         if (dataType == pbdtFixed32)
             field->value.vUint32 = val32b;
         else if (field->def)
             errAbort("Sorry, data type %d not yet supported", dataType);
         break;
     default:
         errAbort("Unsupported wire type %d", wireType);
     }
 return field;
 }
 
 struct protobuf *protobufParse(FILE *stream, struct protobufDef *proto, long long *pBytesLeft)