No, it doesn't cause a memory leak, but only because you're trashing memory your program most likely doesn't own.
To allocate memory dynamically use something like malloc().
Note: You must free() the memory you allocate. However, you have a different problem to address first. You should be declaring msg in main() as a char *, and then passing its address. So in main()....:
int doSomeSillyThing(char **msg)
static char *bleh = "Are you sure this is not causing a memory leak?";
*msg = malloc(strlen(bleh) + 1);
Note all the changes. They are important.
int code = doSomeSillyThing(&msg);
printf("msg = %s\n", msg);
Edit: And don't forget to include the proper header files. stdio.h is needed for printf() and stdlib.h is needed for malloc() and free().