f107043f550375c5bb08bd6ccb8ac8c8e821da3b braney Wed Feb 13 18:37:18 2013 -0800 fix problem with lmCloneString not handling a NULL input correctly (#10199) diff --git src/inc/localmem.h src/inc/localmem.h index 7011789..15d0147 100644 --- src/inc/localmem.h +++ src/inc/localmem.h @@ -26,31 +26,33 @@ // Returns current size of pool, even for memory already allocated void *lmAlloc(struct lm *lm, size_t size); /* Allocate memory from local pool. */ void *lmAllocMoreMem(struct lm *lm, void *pt, size_t oldSize, size_t newSize); /* Adjust memory size on a block, possibly relocating it. If block is grown, * new memory is zeroed. NOTE: in RARE cases, same pointer may be returned. */ void *lmCloneMem(struct lm *lm, void *pt, size_t size); /* Return a local mem copy of memory block. */ char*lmCloneStringZ(struct lm *lm, char *string, int size); /* Return local mem copy of string of given size, adding null terminator. */ -#define lmCloneString(lm, string) lmCloneStringZ(lm, string, strlen(string)) + +char *lmCloneString(struct lm *lm, char *string); +/* Return local mem copy of string. */ char *lmCloneFirstWord(struct lm *lm, char *line); /* Clone first word in line */ char *lmCloneSomeWord(struct lm *lm, char *line, int wordIx); /* Return a clone of the given space-delimited word within line. Returns NULL if * not that many words in line. */ struct slName *lmSlName(struct lm *lm, char *name); /* Return slName in memory. */ #define lmAllocVar(lm, pt) (pt = lmAlloc(lm, sizeof(*pt))); /* Shortcut to allocating a single variable in local mem and * assigning pointer to it. */