From 14ac1a5b413c96f4fcaf434ebfd28d620448e01b Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Tue, 31 Jul 2012 07:09:54 +0000 Subject: synctex: Check values returned by snprintf() git-svn-id: svn://tug.org/texlive/trunk@27266 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/synctexdir/ChangeLog | 6 +++++- Build/source/texk/web2c/synctexdir/synctex_main.c | 12 +++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'Build/source') diff --git a/Build/source/texk/web2c/synctexdir/ChangeLog b/Build/source/texk/web2c/synctexdir/ChangeLog index 6ed7e4deeb8..120839a4423 100644 --- a/Build/source/texk/web2c/synctexdir/ChangeLog +++ b/Build/source/texk/web2c/synctexdir/ChangeLog @@ -1,4 +1,8 @@ -2012-02-03 Peter Breitenlohner +2012-07-30 Peter Breitenlohner + + * synctex_main.c (TEST): Check values returned by snprintf(). + +2012-06-30 Peter Breitenlohner * synctex.c: Remove "# warning ..." line, because MSVC fails to interpret it. diff --git a/Build/source/texk/web2c/synctexdir/synctex_main.c b/Build/source/texk/web2c/synctexdir/synctex_main.c index 2f4d3f8751a..3e3400ab87f 100644 --- a/Build/source/texk/web2c/synctexdir/synctex_main.c +++ b/Build/source/texk/web2c/synctexdir/synctex_main.c @@ -1,5 +1,5 @@ /* -Copyright (c) 2008, 2009, 2010, 2011 jerome DOT laurens AT u-bourgogne DOT fr +Copyright (c) 2008-2012 jerome DOT laurens AT u-bourgogne DOT fr This file is part of the SyncTeX package. @@ -424,6 +424,11 @@ int synctex_view_proceed(synctex_view_params_t * Ps) { }\ buffer_cur += printed;size-=printed;\ printed = snprintf(buffer_cur,size,FORMAT,WHAT);\ + if((unsigned)printed >= (unsigned)size) {\ + synctex_help_view("Snprintf problem");\ + free(buffer);\ + return -1;\ + }\ buffer_cur += printed;size-=printed;\ *buffer_cur='\0';\ viewer = where+strlen(KEY);\ @@ -702,6 +707,11 @@ int synctex_edit_proceed(synctex_edit_params_t * Ps) { }\ buffer_cur += printed;size-=printed;\ printed = snprintf(buffer_cur,size,FORMAT,WHAT);\ + if((unsigned)printed >= (unsigned)size) {\ + synctex_help_edit("Snprintf problem");\ + free(buffer);\ + return -1;\ + }\ buffer_cur += printed;size-=printed;\ *buffer_cur='\0';\ Ps->editor = where+strlen(KEY);\ -- cgit v1.2.3