forked from aniani/vim
patch 8.1.0954: arguments of semsg() and siemsg() are not checked
Problem: Arguments of semsg() and siemsg() are not checked. Solution: Add function prototype with __attribute__.
This commit is contained in:
parent
c9629251a6
commit
0d8562a999
@ -730,6 +730,7 @@ emsg(char *s)
|
||||
return TRUE; /* no error messages at the moment */
|
||||
}
|
||||
|
||||
#ifndef PROTO // manual proto with __attribute__
|
||||
/*
|
||||
* Print an error message with format string and variable arguments.
|
||||
* Note: caller must not pass 'IObuff' as 1st argument.
|
||||
@ -749,6 +750,7 @@ semsg(const char *s, ...)
|
||||
}
|
||||
return TRUE; /* no error messages at the moment */
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Same as emsg(...), but abort on error when ABORT_ON_INTERNAL_ERROR is
|
||||
@ -765,6 +767,7 @@ iemsg(char *s)
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef PROTO // manual proto with __attribute__
|
||||
/*
|
||||
* Same as semsg(...) but abort on error when ABORT_ON_INTERNAL_ERROR is
|
||||
* defined. It is used for internal errors only, so that they can be
|
||||
@ -783,10 +786,11 @@ siemsg(const char *s, ...)
|
||||
va_end(ap);
|
||||
emsg_core(IObuff);
|
||||
}
|
||||
#ifdef ABORT_ON_INTERNAL_ERROR
|
||||
# ifdef ABORT_ON_INTERNAL_ERROR
|
||||
abort();
|
||||
#endif
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Give an "Internal error" message.
|
||||
|
22
src/proto.h
22
src/proto.h
@ -134,6 +134,28 @@ smsg_attr_keep(int, const char *, ...)
|
||||
#endif
|
||||
;
|
||||
|
||||
/* These prototypes cannot be produced automatically. */
|
||||
int
|
||||
# ifdef __BORLANDC__
|
||||
_RTLENTRYF
|
||||
# endif
|
||||
semsg(const char *, ...)
|
||||
#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
|
||||
__attribute__((format(printf, 1, 0)))
|
||||
#endif
|
||||
;
|
||||
|
||||
/* These prototypes cannot be produced automatically. */
|
||||
void
|
||||
# ifdef __BORLANDC__
|
||||
_RTLENTRYF
|
||||
# endif
|
||||
siemsg(const char *, ...)
|
||||
#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
|
||||
__attribute__((format(printf, 1, 0)))
|
||||
#endif
|
||||
;
|
||||
|
||||
int
|
||||
# ifdef __BORLANDC__
|
||||
_RTLENTRYF
|
||||
|
@ -11,9 +11,7 @@ int emsg_not_now(void);
|
||||
void ignore_error_for_testing(char_u *error);
|
||||
void do_perror(char *msg);
|
||||
int emsg(char *s);
|
||||
int semsg(const char *s, ...);
|
||||
void iemsg(char *s);
|
||||
void siemsg(const char *s, ...);
|
||||
void internal_error(char *where);
|
||||
void emsg_invreg(int name);
|
||||
char *msg_trunc_attr(char *s, int force, int attr);
|
||||
|
@ -779,6 +779,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
954,
|
||||
/**/
|
||||
953,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user