Here is a patch for a small fix. It's better to leave the original pointer unchanged if pdf_realloc() fails.
## # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: [email protected] # target_branch: file:///home/gerel/PROJECTS/libgnupdf/trunk/ # testament_sha1: 303b50f87a30f9ad96a1495e75814dfb57beed0f # timestamp: 2010-04-19 09:01:42 -0300 # base_revision_id: [email protected] # # Begin patch === modified file 'ChangeLog' --- ChangeLog 2010-04-18 11:13:22 +0000 +++ ChangeLog 2010-04-19 12:01:34 +0000 @@ -1,3 +1,8 @@ +2010-04-19 Gerardo E. Gidoni <[email protected]> + + Use temp pointer for realloc in pdf_text_concat(). + * src/base/pdf-text.c: added fix. + 2010-04-15 Jose E. Marchesi <[email protected]> Remove spurious blank lines before EOF in the codebase. === modified file 'src/base/pdf-text.c' --- src/base/pdf-text.c 2010-02-20 16:02:07 +0000 +++ src/base/pdf-text.c 2010-04-19 12:01:34 +0000 @@ -1009,9 +1009,17 @@ * concatenation */ if(text2->size > 0) { + pdf_char_t * tmp; /* Re-allocate memory in first text element */ - text1->data = (pdf_char_t *)pdf_realloc(text1->data, \ - text1->size + text2->size); + tmp = (pdf_char_t *)pdf_realloc (text1->data, + text1->size + text2->size); + + if (tmp == NULL) + { + return PDF_ENOMEM; + } + + text1->data = tmp; /* Copy contents of second element after the first one */ memcpy(&(text1->data[text1->size]), text2->data, text2->size); # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWdXK4RcAAkZfgBUwWH///1+H 1gC////6UASPSKAISgACURNJip+JhpU8DEp6NTTyn6U2kaaPSYjTQep6hzAEYJiAYBME0ZDQwCYI xMcwBGCYgGATBNGQ0MAmCMTHMARgmIBgEwTRkNDAJgjEwkiIyCYmQNTJlM1R4TFGnpBhA0yMI5Ec TrczTz0udAKeVvllXLoIoFjfJzy24k0kMcYI4deQH5RhdkhDgMe+55c/19vyPdxI62GYG2WBlKNb DLVU1s41mJaWRY/v59654LX0bXnh6Hn/m5DKOUiJho1NsZuaDZars134m8bdFBpvlBqiGW8UPrLv etWEKXTUmqgBhnKsR0LrNmtNHVljSfD8pBx2nZ9fZjpsD5pLWYXlmSfRQIxGvcSgLNhJwYBmt6Yx hEIGj1xBaxtU9U6CgqZRJhBcwI3DQc+IVHcFt4UsmZj01xiI5ydSkO0ltxFNYbiQGqQ7YsVwErLL KnyBQB7E3UEPTZiBTusnpxIWlZM8Jh4QpIAcN5LYxgROWOg3bqANumqvGW+AZaUVeLoUwKKlwrJ6 nqBlpc4U78t5G2vTcRM9ZdJGyd15ZsN4GcwoGA1Gp1KsKh+ZRJqcNYEcdNAUxBY52dF8TgjqC0ys 2MMso4hEC4qimoMC9XSjovMjOiw0zNxeWVDSgZ7rY9PUOtuqpnxMr/lKxXGBqN0AdRqZ53k9CGwo cbJqVLEdFlgWEpDkcP+r3MaAYLTaVl+Wm6Vv0ht+gYFzGINsqyIjiMMIQorIUBIYkryOgpJkjIxN oH1MLK6FKbPbfHVCm4TqlwagaKmiU27/QfnoKxV4Ls0zKWIx4xquw9ngbBqnvQ0CEUwoKb4v3I7+ U8sXpCfPlE7kruUkDeMjZofpv/snuNATZ1EbuyODtIBg0TfrwF27DWdUfP24Ds9HyppQ7oArK4K0 wAew5oQTolg3GLuF+LQrH0B1nAsyF+/Rwv44Iinci2Y36jNDOby0Pc9SON+HadMdMDkSAx27ZMTO BaFINDMvJI+B0FE3H4graeoG6OfqMB2cbQcTbvqPOBdwGM85TWZrzpVklAqHS8MnRq7aKV74S6JZ a1stYOEJzihUQXsTA5W2v7SSOHLlmVCmknhbWX8yHE6+7nSROrf7egsR31k+pXL6HaeK9vJw7Lzv A0EN0Now6S1TZDFHgd6YfQfVJaO6thcRfZwlXpFw7TkctJTb5I5vT89i6BQM1/aLsj/NmMdaO5G+ wgH41SRtMUbUUopepkLiLptYPKkKBs3RmqC2ZAvuc5hrJk3JrsKpMOpszZjpG0YnQh6HgoUVKIyZ g70k6tNebhgFvaB74GPpNmdhuAZOeFthoNiPNJOq4LLBGoBjZtYYOzs6vR6qSNElVEs41+VxwLpj px0eMNsUeYDc7SulIil9YfdQuuxJSm6+B95huoxlIN4UYVhR/BgXkWKzkj1jlQV6wNNhMVJWvDxA dhxgcueREr0VjceP2lYMHZbl13lVUi9FwUsGWl0lj5hpljfSpI/SnxInxs5DOSSWhcA8vSbJIp+x /4u5IpwoSGrlcIuA ### -gerel
