{"shas":[["9758aa5f02feb02d29a7f0db41081fc97bcc239b","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Fix memleak in mailbox_reconstruct_create","Greg Banks"],["46fc93f79f9d5613c0397a0b4f1337ff791a7c20","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Fix memleak in master.c.\n\nAs tokenize() was changed to take a copy, we don't need to avoid\nfree()ing the buffer anymore.  Also, remove some useless OOM error\nhandling.","Greg Banks"],["3f852eefdb13573ec47a8acf6e9413eec10b2c4b","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Fix double-free of annotation sort criteria\n\nIf we fail to parse SORT ANNOTATION data partway through, we free the\npartially parsed data, and then free it again at the end of cmd_sort().\n\nIntroduced in commit \"annotate: implement RFC5257 SORT ANNOTATION\".\nTODO: merge with that commit.","Greg Banks"],["84b7bedef179d7b16e87d5417cb8ff1ae4c781db","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: RFC5257 interaction with APPEND\n\n- Pass around namespace et al to a lot more places in the append\n  code, as we need them to add new annotations.\n\n- Store an entryattlist in struct  appendstage.\n\n- Parse the ANNOTATION keyword for the APPEND comment and build an\n  entryattlist.\n\n- Call annotatemore_store() to store the new annotations at the end of\n  the append process.","Greg Banks"],["16a215f57309777b323d3338055d4e3f29a12b52","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: RFC5257 extensions to SELECT/EXAMINE\n\n- Parse (and ignore) the ANNOTATE keyword for the SELECT and EXAMINE\n  commands.\n\n- Emit an ANNOTATIONS untagged response to the SELECT and EXAMINE\n  commands.\n\nNote that we do not provide unsolicited annotation responses when other\nclients change annotations, fortunately this is an optional feature in\nthe RFC.","Greg Banks"],["f1fd4485a27cd474ea8a1b84eceb268a7f6edd7f","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: RFC5464 case-insensitive entry names\n\nThe RFC clearly states that entry names are case-insensitive, despite\nthe very similar entry names in RFC5257 being case sensitive.  So\nenforce this.","Greg Banks"],["c2f3462e27ac93c79e11ede44f27a6a237326ec2","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: refuse annotations under /flags/\n\nRFC5257 reserves the whole of the /flags/ hierarchy for future use.\nSo, refuse to allow a sysadmin to configure per-message annotations\nwhose names start with /flags/.","Greg Banks"],["ff1b71b7fe8ae1993bcc4e24a96efd1d10b51af5","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: refuse Cyrus-specific annotations\n\nRefuse to allow the sysadmin to configure annotations whose names begin\nin the Cyrus vendor space.","Greg Banks"],["db85f3ac313630afde8f0c314e40db03710a73ed","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: fix regression with \"/private\"\n\nChecking for a prefix of \"/private/\" is good to avoid broken usages\nlike \"/privatedancer/foo\" but breaks the perfectly valid \"/private\".\n\nIntroduced in commit \"annotate: RFC5464 case-insensitive entry names\"\nTODO: merge with that commit.","Greg Banks"],["9ae08153bdb138109af6ed4223b9a5a45a5e4c5f","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: consistent error message for /private\n\nThere are two places where the METADATA entry names is checked to see\nwhether it begins with /private or /shared or something else.  Use the\nsame and grammatically correct error message for both.","Greg Banks"],["dfd47c47b395cc2e66b0b571e3afb58e87033435","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","unit: test getxstring()\n\nand it's wrappers getastring() getstring() getqstring() getnstring()\nand getbastring().","Greg Banks"],["781f6e794a3278ac028db2596585e09f1087eb1e","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Reimplement getxstring()'s type argument\n\nInstead of an enum make it a set of flags.  This allows for easily\nadding other combinations later.","Greg Banks"],["9873f6d67e7d950c122edbebad0f1a9dd4594ccf","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add getbnstring()\n\nwhich is just like getnstring() except that it allows embedded NULs in\nliterals.","Greg Banks"],["fc69e0d2710e65a1e01be5df8f55463da78b8a33","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","unit: test getbnstring()","Greg Banks"],["491334adc0f7c9901b5920bb9109de8ed5597e45","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","annotate: actually parse embedded NULs\n\nUse the new getbnstring() interface to avoid Cyrus' utility routines\ngleefully rejecting embedded NULs in annotation values.","Greg Banks"]],"repo":"gnb/cyrus-imapd","actor":"gnb","ref":"refs/heads/annotate","size":15,"head":"491334adc0f7c9901b5920bb9109de8ed5597e45","actor_gravatar":"aed5d4f2565824dc6151b443c8b9a916","push_id":29100969}